Vanhassa JavaScriptissä muuttujat ilmoitetaan käyttämällä avainsanaa ’var
’. ES6:ssa voit nyt määritellä muuttujia myös let
– ja const
-avainsanoilla. Kaikilla kolmella avainsanalla on samanlainen syntaksi muuttujien ilmoittamiseen ja alustamiseen, mutta ne eroavat toisistaan niiden laajuuden ja käytön suhteen. Tutustutaanpa näiden kolmen avainsanan välisiin eroihin.
var-avainsana
’var
’-avainsanalla on perinteinen muuttujien määrittelyn syntaksi. Vaihtoehtoisesti voit alustaa muuttujan jollakin arvolla. jos et alustaa muuttujaa var
-lausekkeessa, sille annetaan automaattisesti JavaScript-arvo undefined
.
1) Soveltamisala
2) Var-deklaraatioiden nostaminen
Huomaa, että var
-avainsanalla var
deklarisoidut muuttujat ovat nostamisen alaisia. Hoisting tarkoittaa sitä, että jos deklaroimme muuttujan (joka on ilmoitettu, mutta jota ei ole alustettu) funktion lopussa, runtime nostaa sen huipulle, eikä meille tule mitään virhettä, jos olisimme käyttäneet kyseistä muuttujaa ennen sen deklarointia.
Lue lisää: JavaScript Hoisting
3) Jos et käytä ’var’-avainsanaa
Javaskriptissa, jos et käytä var
-avainsanaa muuttujan ilmoittamiseen (implisiittinen ilmoittaminen), niin muuttuja luodaan globaaliin alueeseen. esim.
for(index=0; index< array.length; index++){//index is in global scope //code}
Ylläoleva for-silmukka luo globaaliin alueeseen muuttujan index
. Jos joku toinenkin sattuu käyttämään globaalia index
-muuttujaa, olet juuri korvannut hänen muuttujansa.
Välttääksesi muuttujan globaalin laajuuden antamisen sinun on käytettävä var
-avainsanaa muuttujan deklaraatiossa.
let-avainsana
let
-avainsana on hyvin samankaltainen kuin var
-avainsana – rajoittamalla laajuutta enemmän.
const-avainsana
-
const
deklaraatioon kuuluu muuttuja, jolla on vakioarvo. Se on periaatteessa muuttujan ilmoittaminen avainsanalla ’var
’, jossa muuttujan arvo on vakio eikä sitä voi muuttaa. -
const
noudattaa samoja rajausperiaatteita kuin avainsanalet
. - jos tiedät, että muuttujaa, jonka olet ilmoittamassa, ei voi eikä saa siirtää uudelleen, ilmoita se const-avaimella, muussa tapauksessa käytä let-avainsanaa.
Syntaksi ja käyttö
const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.