Hissage JavaScript

En JavaScript, les déclarations de fonctions et de variables sont hissées au sommet de la fonction.

En JavaScript, une variable peut être déclarée après avoir été utilisée ; en d'autres termes, une variable peut être utilisée avant d'être déclarée.

Les deux exemples suivants donneront le même résultat :

Exemple 1

x = 5; // Définir la variable x à 5

elem = document.getElementById("demo"); // Trouver l'élément
elem.innerHTML = x;                     // Afficher x dans l'élément

var x; // Déclarer x

Essayez-le vous-même »

Exemple 2

var x; // Déclarer x
x = 5; // Définir la variable x à 5

elem = document.getElementById("demo"); // Trouver l'élément
elem.innerHTML = x;                     // Afficher x dans l'élément

Essayez-le vous-même »

Pour comprendre les exemples ci-dessus, vous devez comprendre « hoisting ».

Hoisting : les déclarations de fonctions et les déclarations de variables sont toujours silencieusement « hissées » tout en haut du corps de la méthode par l'interpréteur.


Les initialisations JavaScript ne sont pas hissées

Les initialisations JavaScript ne sont pas hissées. En JavaScript, seules les déclarations de variables sont hissées, pas les initialisations.

Les deux exemples suivants ne donnent pas le même résultat :

Exemple 1

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

elem = document.getElementById("demo"); // Trouver l'élément
elem.innerHTML = x + " " + y;           // Afficher x et y

Essayez-le vous-même »

Exemple 2

var x = 5; // Initialiser x

elem = document.getElementById("demo"); // Trouver l'élément
elem.innerHTML = x + " " + y;           // Afficher x et y

var y = 7; // Initialiser y

Essayez-le vous-même »

Dans l'exemple 2, y affiche undefined,undefinedC'est parce que la déclaration de variable (var y) est hissée, mais l'initialisation (y = 7) ne l'est pas, donc la variable y est une variable undefined.

L'exemple 2 se comporte comme le code suivant :

var x = 5; // 初始化 x
var y;     // 声明 y

elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y;           // 显示 x 和 y

y = 7;    // 设置 y 为 7

Déclarez vos variables en haut !

La plupart des programmeurs ne connaissent pas le hoisting JavaScript.

Si les programmeurs ne comprennent pas bien le hoisting, les programmes qu'ils écrivent sont sujets aux erreurs.

Pour éviter ces problèmes, nous déclarons généralement ces variables au début de chaque portée. C'est également l'étape normale d'analyse de JavaScript, ce qui facilite la compréhension.

Note Le mode strict de JavaScript ne permet pas d'utiliser des variables non déclarées.
Dans le prochain chapitre, nous allons découvrir« mode strict » 。
Autres extensions