0 szavazat
által 
var szam;

Ez egy előre meghatározott változó név érték nélkül. Ez mivel jobb, mint az előre meghatározott változó értékkel? Mi a különbség?

1 válasz

+1 szavazat
által 
által kiválasztott
 
Legjobb válasz

Szia!

A programozásban van két művelet a változó "létrehozás" (declaration) és az értékadás (assignment). Ahhoz hogy egy változót használhass muszáj előtte létrehozni. Erre való a javascriptben a var kulcsszó. Egy ilyen frissen létrehozott változó alapból undefined értékű.

Ha változónak később tudsz értéket adni, erre való az = operátor.

var age; console.log(age); // ezt írja ki: undefined age = 34; console.log(age); // ezt írja ki: 34

Ezt a kettőt tudod rövidíteni egy sorba is. Ilyenkor két művelet hajtódik végre, a létrehozás és az értékadás:

var age=34; console.log(age); // ezt írja ki: 34

A javascriptben hivatalosan nincs olyan, hogy egy változó "defined". Tekints az undefined-ra úgy, mint egy speciális értékre. Konyhanyelven mondhatjuk azt, hogy egy változó defined, ha létre van hozva és az értéke nem undefined, de ennek így a nyelvben nincs értelme.

Fontos, hogy mindig használd a var kulcsszót, mielőtt értéket adsz egy változónak!

Miért?

Sok programnyelv, így a javascript is megcsinál helyetted egy csomó mindent. Ez megnehezíti a dolgod, mert ha nem ismered ezt a csomó mindent az bizony meglepetéseket okozhat. Az egyik ilyen dolog a változók deklarációja is.

Ha nem adsz meg külön var kulcsszót, csak simán értéket adsz egy változónak, azt a Javascript létrehozza neked, csak épp a közös változóterületen (global scope) , ahol csomó minden más is van. Ha pl van ilyen nevű változó már ott (amit nem is te hoztál létre), akkor az felülíródik, és ez sok problémát okoz.

Ha ismered már a függvényeket, és a függvényekben a változók használatát, akkor szívesen elmondom részletesebben miről van szó.

...