A vanilla JavaScriptben a változókat a ‘var
‘ kulcsszóval deklaráljuk. Az ES6-ban most már a let
és const
kulcsszavakkal is lehet változókat definiálni. Mindhárom kulcsszó szintaxisa hasonló a változók deklarálásához és inicializálásához, de a hatókörük és a használatuk különbözik. Ismerjük meg a 3 kulcsszó közötti különbségeket.
var kulcsszó
‘var
‘ kulcsszó hagyományos változódefiníciós szintaxissal rendelkezik. Opcionálisan inicializálhatja a változót egy értékkel. f ha nem inicializálja a változót a var
utasításban, akkor automatikusan a JavaScript undefined
értéket kapja.
1) Hatály
2) A var deklarációk felemelése
Figyeljen arra, hogy a var
kulcsszóval deklarált változókra vonatkozik a felemelés. A hoisting azt jelenti, hogy ha egy függvény végén deklarálunk egy (deklarált, de nem inicializált) változót, akkor a futásidő felemeli azt a tetejére, és nem lesz hiba, ha a deklarálás előtt használtuk volna az adott változót.
Bővebben:
3) Ha nem használjuk a ‘var’ kulcsszót
A JavaScriptben, ha nem használjuk a var
kulcsszót a változó deklarálásához (implicit deklaráció), akkor a változó a globális hatókörben jön létre. pl.
for(index=0; index< array.length; index++){//index is in global scope //code}
A fenti for-hurok létrehoz egy index
nevű változót a globális hatókörben. Ha történetesen valaki más is használ egy globális index
változót, akkor éppen most írtad felül az ő változóját.
Hogy ne adjunk a változónak globális hatókörűséget, használnunk kell a var
kulcsszót a változó deklarációjában.
let kulcsszó
let
A kulcsszó nagyon hasonló a var
kulcsszóhoz – csak a hatókörűségben korlátozottabb.
const kulcsszó
-
const
egy blokkhatókörű változót deklarál konstans értékkel. Ez lényegében egy változó deklarálása ‘var
‘ kulcsszóval, ahol a változó értéke állandó és nem változtatható. -
const
ugyanazokat a skálázási elveket követi, mint alet
kulcsszó. - ha tudjuk, hogy az általunk deklarált változót nem lehet és nem is szabad engedni, hogy újra hozzárendeljük, akkor deklaráljuk a const kulcsszóval, különben használjuk a let kulcsszót.
Szintaxis és használat
const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.
.