Autor | Zpráva | ||
---|---|---|---|
robbie Profil * |
#1 · Zasláno: 23. 8. 2014, 13:18:58
oravdu si lámu hlavu, proc je ve scriptu toto: text= ""; text += muze mi to nekdo prosim vic objasnit. dekuju
<script> cars = ["BMW", "Volvo", "Saab", "Ford"] text= ""; var i; for (i = 0; i < cars.length; i++) { text += cars[i] + "<br>"; } document.getElementById("demo").innerHTML = text; </script> |
||
mimochodec Profil |
#2 · Zasláno: 23. 8. 2014, 13:48:07
Operátory
"přičtení, ale také připojení řetězce" |
||
robbie Profil * |
#3 · Zasláno: 23. 8. 2014, 18:16:17
A jak chápat tohle: text= ""; dekuji za pomoc
|
||
mimochodec Profil |
robbie:
Prosím tebe, asi takhle: a = 1; // toto znamená přiřazení hodnoty, neboli odteď a = 1 a = ""; // toto je přiřazení hodnoty, jen to není číslo, ale prázdný řetězec. Takže odteď a = "", neboli prázdný string. Možná bych laicky řekl 'nic' |
||
weroro Profil |
#5 · Zasláno: 23. 8. 2014, 18:35:39
robbie:
Pokiaľ by nebola táto premenná definovaná s prázdnym reťazcom, tak by ti vo výsledku nevypísalo: BMW Volvo Saab Ford undefinedBMW Volvo Saab Ford Ak by tam premenná nebola vôbec alebo by nemala na začiatku var text; , nevypísalo by ti nič.
|
||
robbie Profil * |
#6 · Zasláno: 23. 8. 2014, 18:47:21
Dekuji za pohotové rady, oni to v učebnici nevysvetlili a rovnou napsali script, ted už to chápu o neco víc.
|
||
Fisir Profil |
#7 · Zasláno: 23. 8. 2014, 18:47:44
Reaguji na robbieho:
V cyklu for se do proměnné text připojuje text. Aby se mohl připojit, musí dotyčná proměnná existovat. Proto se ještě před cyklem definuje (jako prázdný řetězec).
|
||
anonymníí Profil * |
#8 · Zasláno: 25. 8. 2014, 07:37:32
weroro:
„alebo by nemala na začiatku var text;, nevypísalo by ti nič.“ Jseš si jistý? Tedy, s tím varem. |
||
Radek9 Profil |
anonymníí:
Pokud se pokusíš přistoupit k nedefinované proměnné (ne jen, že je v ní hodnota undefined , ale že není definovaná var em), opravdu to nevypíše nic, protože to místo toho vyhodí chybu.
|
||
anonymníí Profil * |
#10 · Zasláno: 25. 8. 2014, 12:05:46
Radek9:
Nepochopil jsi. Proměnná je deklarovaná, bez var . weroro psal, že by tam var být mělo (ve smyslu muselo). Být tam může, správně má být, ale nemusí. To je oč tu běží.
|
||
Fisir Profil |
#11 · Zasláno: 25. 8. 2014, 12:15:52
Reaguji na anonymníího:
Já jsem toho názoru, že co se týče začátečníků, var musí být. Někdy to projde, ale někdy to vede k magickým a začátečníky těžko odhalitelným chybám (kolizím se stejnojmennými vlastnostmi objektu window ).
|
||
Radek9 Profil |
#12 · Zasláno: 25. 8. 2014, 12:50:25
anonymníí:
„Nepochopil jsi.“ Ty jsi nepochopil. weroro uvedl tři stavy: 1. var text = "";
2. var text;
3. nic Ve třetím případě by script vyhodil ReferenceError , neboť text += value odpovídá text = text + value a v tu chvíli proměnná text ještě není definovaná.
|
||
Chamurappi Profil |
#13 · Zasláno: 25. 8. 2014, 13:06:33
Reaguji na Radka9:
Pokud dobře čtu, weroro zmínil stav „alebo by nemala na začiatku var“, tedy jen text = "" .
V takovém případě proměnná vznikne (pravděpodobně) také a výstup bude vypadat stejně jako s var .
Reaguji na Fisira: „Já jsem toho názoru, že co se týče začátečníků, var musí být.“
To je možné, ale lhát jim nebudeme :-) |
||
weroro Profil |
anonymníí: Chamurappi
Práve preto som uviedol aj príklad var text; a nie var text = "";
Pokiaľ by som chcel priradiť do premennej deklarovanej takto text; , tak to už hodí chybu. Keď je definovaná ako var text; bude ako prvá hodnota undefined .
Ďakujem. :-) |
||
Chamurappi Profil |
#15 · Zasláno: 25. 8. 2014, 13:31:21
Reaguji na werora:
Tak to ti gratuluji k úspěšně sestavenému nedorozumění :-) Vážně mě nenapadlo, že zmiňuješ možnost, že by člověk napsal jen text; (bez hodnoty i bez var u). To jsem ještě neviděl, že by někdo udělal.
|
||
janbarasek Profil |
#16 · Zasláno: 25. 8. 2014, 14:52:34
Chamurappi:
Hehe, tohle není nic neobvyklého. Ve škole jsme se učili vždy na začátku programu psát takto názvy všech proměnných. Je to prasárna (to uznávám), ale dost lidí se to takto naučí (já naštěstí vždy nastavuji defaultní hodnotu). |
||
Joker Profil |
#17 · Zasláno: 25. 8. 2014, 16:04:43
janbarasek:
„Ve škole jsme se učili vždy na začátku programu psát takto názvy všech proměnných.“ Jako že vás učili dávat na začátek kódu např.: c; i; sirka; vyska; x; y; jmeno; promenna; dalsiPromenna; ?
Nechápu, proč by to někdo dělal, je to padlé na hlavu a v některých jazycích (jako třeba JavaScript) pak kód ani nebude fungovat. |
||
_es Profil |
Chamurappi:
„Vážně mě nenapadlo, že zmiňuješ možnost, že by člověk napsal jen text; (bez hodnoty i bez var u). To jsem ještě neviděl, že by někdo udělal.“
Videl, ale nezapamätal: Môžem testovať neexistujúcu premennú? janbarasek: „já naštěstí vždy nastavuji defaultní hodnotu).“ Vždy to „nastavovať“ nie je vhodné. Po príkaze var x; nemusí byť x undefined pokiaľ bolo x už predtým definované a „nastavené“. Ak myslíš pod „nastavením defaultnej hodnoty“ príkaz x=hodnota; bez predchádzajúceho príkazu var , tak to nie je dobrý nápad, lebo to môže v niektorých prehliadačoch v istých prípadoch vyvolať chybu: Časté potíže, zajímavosti a poučné debaty » Používejte var , InnerHTML problém v IE8
|
||
Časová prodleva: 10 let
|
0