En JavaScript, les déclarations de fonctions et de variables seront promues en haut de la fonction.
En JavaScript, les variables peuvent être déclarées après utilisation, c'est-à-dire que les variables peuvent être utilisées en premier puis déclarées.
Les deux instances suivantes obtiendront le même résultat :
Instance 1
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> x = 5; // 变量 x 设置为 5 elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x; // 在元素中显示 x var x; // 声明 x </script> </body> </html>
Exécutez le programme et essayez-le
Exemple 2
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> var x; // 声明 x x = 5; // 变量 x 设置为 5 elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x; </script> </body> </html>
Exécutez le programme et essayez-le
Pour comprendre les exemples ci-dessus, vous devez comprendre le « levage (levage variable) ».
Promotion de variable : les déclarations de fonction et les déclarations de variables sont toujours "promues" discrètement en haut du corps de la méthode par l'interpréteur.
L'initialisation JavaScript ne sera pas promue
JavaScript seules les variables déclarées seront promues, pas celles initialisées.
Les deux exemples suivants ont des résultats différents :
Instance 1
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> var x = 5; // 初始化 x var y = 7; // 初始化 y elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x + " " + y; // 显示 x 和 y </script> </body> </html>
Exécutez le programme et essayez-le
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> var x = 5; // 初始化 x elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = "x 为:" + x + ",y 为:" + y; // 显示 x 和 y var y = 7; // 初始化 y </script> </body> </html>
Exécutez le programme et essayez-le
Le y de l'instance 2 sort non défini. Cela est dû au fait que la déclaration de variable (var y) est augmentée, mais l'initialisation (y = 7) ne le sera pas. être augmenté, donc la variable y est une variable non définie.
Astuce
Déclarez vos variables dans l'entête
JavaScript le levage variable est inconnu de la plupart des programmeurs.
Si les programmeurs ne comprennent pas bien la promotion des variables, les programmes qu'ils écrivent sont sujets à des problèmes.
Afin d'éviter ces problèmes, nous déclarons généralement ces variables avant le début de chaque portée. Il s'agit également d'une étape d'analyse JavaScript normale et facile à comprendre.