javascript nie je deklaratívny jazyk. Premenné nemusíš deklarovať. Mňa by skôr zaujímalo čo má za interpreter (prehliadač) keď mu to nespočíta. Zrejme to nie je celý kod, lebo by to malo zrátať
Ktoré z tých dvoch je správne zapísané? Samozrejme a = 1; je v poriadku a prehliadač to zožerie ale pokiaľ má byť premenná deklarovaná poriadne, tak tam to var dám.
peefg: Poslal si to isté ako poslal on: duplicita = kravina. Ale áno, prepáč, nemal som sa tak hrubo vyjadriť.
Sheepdog:
//autoeditácia príspevku (23 Mar 2012, 12:36)
Ešte na margo toho var
audiotrack napísal:javascript nie je deklaratívny jazyk. Premenné nemusíš deklarovať. Mňa by skôr zaujímalo čo má za interpreter (prehliadač) keď mu to nespočíta. Zrejme to nie je celý kod, lebo by to malo zrátať
urcite je to zjednoduseny kod, predpokladam ze v realnej aplikacii su to stringy a preto to spoji retazce namiesto scitania...
weroro: var deklaruje lokálnu premennú. Keď nedeklaruješ cez var, vytvoríš globálnu, ktorá je prístupná úplne všade (a teda sa zmení aj vo funkcii)
V tom prvom prípade riešiš lokálne premenné. V druhom vytvoríš globálnu a potom ju zmeníš.
weroro napísal:
Ktoré z tých dvoch je správne zapísané? Samozrejme a = 1; je v poriadku a prehliadač to zožerie ale pokiaľ má byť premenná deklarovaná poriadne, tak tam to var dám.
Ako deklarovana poriadne? Pokial script vyslovene potrebuje, tak tam dam var, ak ho tam nedam tak sa premenna deklaruje aj bez toho. To zavisi od konkretneho pouzitia, davat vsade var vobec nie je potrebne.
//autoeditácia príspevku (23 Mar 2012, 14:04)
BX napísal:weroro: var deklaruje lokálnu premennú. Keď nedeklaruješ cez var, vytvoríš globálnu, ktorá je prístupná úplne všade (a teda sa zmení aj vo funkcii)
V tom prvom prípade riešiš lokálne premenné. V druhom vytvoríš globálnu a potom ju zmeníš.
Vobec nie je pravda, ze var deklaruje lokalnu premennu. Ak das var mimo funkcie tak je to globalna premanna (rovnako ked tam var nedas). Ak das var do funkcie tak je to lokalna premenna (rovnako ked tam var nedas).
s tým tak celkom nesúhlasím, BX dobre napísal že var definuje local scope (neviem ako sa to prekladá v našej lit.) a v podstate tým určuješ že ide o lokálnu premennú. Ak ju ako "lokárnu" určíš v global scope, tak áno, nehrá to rolu. Ale v tých funkciach to už rolu hrá (rovnako tak v cykloch, nie je jedno či dáš for(i=1; i<5; i++) alebo for(var i=1; i<5; i++) )
function f (){
for (i=0; i<5; i++); //nedefinoval som lokálnu viditeľnosť pre cyklus, ovplyvňujem globálnu premennú
}
var i = 2; //definujem si i
f (); //tento cyklus mi premennú zmeni
console.log(i); //vypíše 5
///////////////////////////////////////////
function g (){
for (var i=0; i<5; i++); //definoval som viditelnost iba na cyklus
}
var i = 2; //resetnem si hodnotu premennej
g (); //tento cyklus mi premennú uz NEzmeni
console.log(i); //vypíše 2
No ano, ale to uz potom zavisi od konkretneho pouzitia (co som pisal uz v mojej prvej reakcii). Ty si to napisal takym stylom, ako by to bolo stale tak.
// ale samozrejme rozumieme sa, len sa dotahujeme za slovicka...