In JavaScript vanilla, le variabili sono dichiarate usando la parola chiave ‘var
‘. In ES6, ora, puoi definire le variabili usando anche le parole chiave let
e const
. Tutte e tre le parole chiave hanno una sintassi simile per la dichiarazione e l’inizializzazione delle variabili, ma differiscono nel loro scopo e uso. Impariamo le differenze tra queste 3 parole chiave.
var parola chiave
‘var
‘ parola chiave ha una sintassi tradizionale di definizione delle variabili. Facoltativamente, potete inizializzare la variabile con un valore. Se non inizializzate la vostra variabile nella dichiarazione var
, le viene automaticamente assegnato il valore JavaScript undefined
.
1) Scope
2) Hoisting delle dichiarazioni var
Si noti che le variabili dichiarate con la parola chiave var
sono soggette a hoisting. Hoisting significa che se dichiariamo una variabile (dichiarata ma non inizializzata) alla fine di una funzione, il runtime la isserà in cima e non avremo nessun errore se avessimo usato quella variabile prima di essere dichiarata.
Leggi tutto: JavaScript Hoisting
3) Se non usi la parola chiave ‘var’
In JavaScript, se non usi la parola chiave var
per la dichiarazione della variabile (dichiarazione implicita) allora la variabile sarà creata nello scope globale. es.
for(index=0; index< array.length; index++){//index is in global scope //code}
Il ciclo for precedente creerà una variabile chiamata index
nello scope globale. Se qualcun altro sta usando una variabile globale index
, allora avete appena sovrascritto la loro variabile.
Per evitare di dare alla variabile uno scope globale, devi usare la parola chiave var
nella tua dichiarazione di variabile.
la parola chiave
let
è molto simile alla parola chiave var
– con più restrizioni nello scoping.
const parola chiave
-
const
dichiara una variabile block-scoped con un valore costante. È fondamentalmente una dichiarazione di variabile con la parola chiave ‘var
‘ dove il valore della variabile è costante e non può essere cambiato. -
const
segue gli stessi principi di scoping della parola chiavelet
. - se sai che la variabile che stai dichiarando non può e non deve essere riassegnata, allora dichiarala con const, altrimenti usa la parola chiave let.
Sintassi e uso
const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.