L'éditeur suivant vous apportera l'explication détaillée la plus facile à comprendre de la promotion des variables JavaScript. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour jeter un oeil
comme suit :
1 2 3 |
|
Dans mon Avant de parler de ce qu'est la promotion de variable et des règles de promotion de variable, ou si vous n'avez pas appris la promotion de variable, si vous la comprenez selon le javascript existant, pour l'exemple ci-dessus, vous pourriez penser que le résultat de la troisième ligne de le code ne doit pas être défini. Parce que la deuxième ligne est var a; qui déclare la variable mais n'attribue pas de valeur, la valeur de a n'est pas définie, mais le résultat correct est ghostwu. Quant à savoir pourquoi, veuillez continuer à lire ! 🎜>
1 2 |
|
Pour comprendre pourquoi, il faut d'abord clarifier les deux points suivants : Le code Javascript n'est pas exécuté ligne par ligne.
L'exécution de Javascript est divisée en 2 étapes :
Compilation (interprétation/pré-interprétation lexicale)
ExécutionDeuxièmement, lorsque nous rencontrons var a = "ghostwu" définissant une variable, js considère en fait cette phrase comme deux étapes var a se produit dans la phase de compilation, et a = 'ghostwu' se produit. dans la phase d'exécution. Ensuite, var a will est promu au premier plan de la portée actuelle, a = 'ghostwu' reste en place en attendant la phase d'exécution, donc :
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 |
|
Avant de continuer, clarifions les deux manières courantes de définir des fonctions :
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 |
|
Ainsi, après compilation, le code ci-dessus devient le suivant :
1 2 3 4 5 6 |
|
ne sera pas promu pour les expressions de fonction, voir l'exemple suivant :
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 |
|
Parce que : Lorsqu'une déclaration de fonction ou une déclaration de variable avec le même nom apparaît, la déclaration de fonction sera promue en premier et la déclaration de variable sera ignorée. Ainsi après compilation, cela devient :
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!