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.