L’hoisting delle variabili var in JavaScript

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:

    console.log(myVar); // => undefined
    var myVar = 1;

L’interprete JavaScript è come se traducesse il codice in questo modo:

    var myVar;
    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:

    console.log(myVar); // => undefined
    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:

    var myVar;
    console.log(myVar); // => undefined
    myVar = 1;
    console.log(myVar); // => 1

Indice:

Pubblicato in Front-end, JavaScript Taggato con: , ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*