Derniers tutoriels de développement web
 

JavaScript Hoisting


Hoisting est le comportement par défaut de JavaScript de déplacer les déclarations vers le haut.


Déclarations JavaScript sont hissées

En JavaScript, une variable peut être déclarée après qu'il a été utilisé.

En d'autres termes; une variable peut être utilisée avant d'avoir été déclarée.

Exemple 1 donne le même résultat que dans l' exemple 2:

Exemple 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
Essayez - le vous - même »

exemple 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
Essayez - le vous - même »

Pour comprendre cela, il faut comprendre le terme "hoisting" .

Hoisting est le comportement par défaut de JavaScript de déplacer toutes les déclarations au sommet de la portée actuelle (en haut du script ou la fonction en cours).


JavaScript initialisations sont pas hissées

JavaScript ne palans déclarations, pas initialisations.

Exemple 1 ne donne pas le même résultat que dans l' exemple 2:

Exemple 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
Essayez - le vous - même »

exemple 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
Essayez - le vous - même »

Est-il logique que y est undefined dans le dernier exemple?

En effet, seule la déclaration (var y), et non pas l'initialisation (= 7) est hissé au sommet.

En raison de hoisting , y a été déclarée avant d' être utilisée, mais parce que les initialisations ne sont pas hissés, la valeur de y est définie.

Exemple 2 est la même que l'écriture:

Exemple

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
Essayez - le vous - même »

Déclarez vos variables Au Top!

Hoisting est (à de nombreux développeurs) un comportement inconnu ou négligé de JavaScript.

Si un développeur ne comprend pas le hoisting , les programmes peuvent contenir des bogues (erreurs).

Pour éviter les bugs, toujours déclarer toutes les variables au début de chaque champ.

Depuis voici comment JavaScript interprète le code, il est toujours une bonne règle.

JavaScript en mode strict ne permet pas de variables à être utilisées si elles ne sont pas déclarés.
Étude "use strict" dans le chapitre suivant.