Gli ultimi tutorial di sviluppo web
 

JavaScript Hoisting


Hoisting è il comportamento predefinito di JavaScript del movimento dichiarazioni verso l'alto.


Le dichiarazioni JavaScript vengono issate

In JavaScript, una variabile può essere dichiarata dopo che è stato usato.

In altre parole; una variabile può essere utilizzato prima è stata dichiarata.

Esempio 1 fornisce lo stesso risultato Esempio 2:

esempio 1

x = 5; // Assign 5 to x

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;                     // Display x in the element

var x; // Declare x
Prova tu stesso "

esempio 2

var x; // Declare x
x = 5; // Assign 5 to x

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;                     // Display x in the element
Prova tu stesso "

Per capire questo, bisogna capire il termine "hoisting" .

Hoisting è il comportamento predefinito di JavaScript del movimento tutte le dichiarazioni alla parte superiore del campo di applicazione corrente (per la parte superiore dello script corrente o la funzione corrente).


Inizializzazioni Javascript non vengono issate

JavaScript issa solo le dichiarazioni, non inizializzazioni.

Esempio 1 non dà lo stesso risultato Esempio 2:

esempio 1

var x = 5; // Initialize x
var y = 7; // Initialize y

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y;           // Display x and y
Prova tu stesso "

esempio 2

var x = 5; // Initialize x

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y;           // Display x and y

var y = 7; // Initialize y
Prova tu stesso "

Ha senso che y non è definita nell'ultimo esempio?

Questo perché solo la dichiarazione (var y), non l'inizializzazione (= 7) viene issata all'inizio.

A causa di hoisting , y è stato dichiarato prima del suo utilizzo, ma perché inizializzazioni non sono issati, il valore di y è definito.

Esempio 2 è lo stesso di scrittura:

Esempio

var x = 5; // Initialize x
var y;     // Declare y

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y;           // Display x and y

y = 7;    // Assign 7 to y
Prova tu stesso "

Dichiarare le variabili in cima!

Hoisting è (per molti sviluppatori) un comportamento sconosciuto o trascurato di JavaScript.

Se uno sviluppatore non capisce hoisting , i programmi possono contenere bug (errori).

Per evitare errori, dichiarare sempre tutte le variabili all'inizio di ogni campo di applicazione.

Poiché questo è come JavaScript interpreta il codice, è sempre una buona regola.

JavaScript in modalità rigorosa non consente le variabili da utilizzare se non sono dichiarati.
Studio "use strict" nel prossimo capitolo.