L’hoisting delle variabili var in JavaScript consente di utilizzare le variabili prima della loro dichiarazione
Per utilizzare una variabile con var in JavaScript bisogna creare e inizializzare la variabile. Una variabile non ancora inizializzata ha undefined come valore (vedi: Il ciclo di vita delle var in JavaScript). Fin dalla prima versione di JavaScript è possibile utilizzare le variabili prima di dichiarare. Di conseguenza, il seguente codice è del tutto legittimo:
var myVar = 1;
L’interprete JavaScript è come se traducesse il codice in questo modo:
console.log(myVar); // => undefined
myVar = 1;
La dichiarazione di myVar è stata spostata in cima al codice e dato che, nel ciclo di vita delle variabili dichiarate con var la fase di dichiarazione e inizializzazione avvengono insieme, la variabile assume il valore di undefined fin quando non gli verrà assegnato un valore.
JavaScript effettua l’hoisting solo per la dichiarazione delle variabili e non per l’inizializzazione, avremo quindi che:
var myVar = 1;
console.log(myVar); // => 1
Solo var myVar viene spostato in cima dello scope, il suo assegnamento resta nello stesso punto di codice, quindi accendendo alla variabili prima del loro assegnamento ci verrà restituito undefined:
console.log(myVar); // => undefined
myVar = 1;
console.log(myVar); // => 1
Indice:
Ultimi commenti