I vanilla JavaScript deklareres variabler ved hjælp af nøgleordet “var
“. I ES6 kan du nu også definere variabler ved hjælp af nøgleordene let
og const
. Alle tre nøgleord har samme syntaks for variabeldeklaration og initialisering, men de adskiller sig fra hinanden med hensyn til omfang og brug. Lad os lære forskellene mellem disse 3 nøgleord at kende.
var nøgleord
‘var
‘ nøgleordet har traditionel syntaks for variabeldefinition. Du kan eventuelt initialisere variablen med en værdi. Hvis du ikke initialiserer din variabel i var
-angivelsen, tildeles den automatisk JavaScript-værdien undefined
.
1) Anvendelsesområde
2) Hoisting af var-deklarationer
Bemærk, at variabler, der er deklareret med nøgleordet var
, er omfattet af hoisting. Hoisting betyder, at hvis vi erklærer en variabel (erklæret, men ikke initialiseret) i slutningen af en funktion, vil runtime hejse den til toppen, og vi vil ikke få nogen fejl, hvis vi ville have brugt variablen, før den blev erklæret.
Læs mere:
3) Hvis du ikke bruger nøgleordet ‘var’
I JavaScript, hvis du ikke bruger nøgleordet var
til variabeldeklaration (implicit deklaration), vil variablen blive oprettet i det globale scope. f.eks.
for(index=0; index< array.length; index++){//index is in global scope //code}
Overstående for-loop vil oprette en variabel kaldet index
i det globale scope. Hvis en anden tilfældigvis også brugte en global index
-variabel, har du lige overskrevet deres variabel.
For at undgå at give variablen global scope skal du bruge nøgleordet var
i din variabeldeklaration.
let nøgleordet
let
nøgleordet minder meget om var
nøgleordet – med mere begrænsning i scoping.
const nøgleordet
-
const
deklarerer en variabel med block-scoped værdi med en konstant værdi. Det er grundlæggende variabeldeklaration med nøgleordet ‘var
‘, hvor variabelværdien er konstant og ikke kan ændres. -
const
følger de samme scoping-principper som nøgleordetlet
. - Hvis du ved, at den variabel, du deklarerer, ikke kan og ikke bør have lov til at blive genoverdraget, så deklarer den med const, ellers skal du bruge nøgleordet let.
Syntaks og anvendelse
const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.