En JavaScript, VAR est utilisé pour déclarer des variables, mais cette syntaxe n'est pas strictement requise. Plusieurs fois, nous pouvons utiliser directement une variable sans utiliser VAR pour le déclarer.
La copie de code est la suivante:
var x = "xx";
y = "xxx";
Et ainsi de suite. Il y a un problème avec cela. Par exemple, dans une ligne du code, je souhaite utiliser une variable déclarée x. En conséquence, en raison des erreurs de dactylographie ou d'orthographe, cette variable est écrite comme y. Le résultat est équivalent à une déclaration "implicite" d'une variable y. Dans la programmation réelle, cette erreur est parfois difficile à détecter.
Lorsque vous faites cette déclaration "implicite" dans le contexte actuel, le moteur JavaScript cherchera d'abord si cette variable a été déclarée auparavant dans le contexte actuel. Sinon, recherchez le niveau de contexte précédent. S'il n'a pas été trouvé, il déclarera enfin cette variable sur la fenêtre!
Par exemple:
Le code est le suivant:
fenêtre. y = "bonjour"; fonction func () {y = "Oh, non !!!"; } func (); alerte (fenêtre.y); // # => Affichage "Oh, non !!!"Lorsqu'une couche dans le contexte a une définition aussi "implicite" de la variable, la variable de cette couche sera modifiée sans générer de nouvelle variable sur la fenêtre. (Ce type de bug est assez ennuyeux, en particulier le code plus complexe encapsulé)
Par exemple:
Le code est le suivant:
var x = "window.x"; fonction a () {var x = "a's x"; var b = function () {var c = function () {// non var! x = "c's x:"; }; alert ("Avant C Run, le bx:" + x); c (); alerte ("après C run, le bx:" + x); }; alerte ("Axe est:" + x); b (); alerte ("Après la fonction B, la hache est:" + x); }; alert ("Avant une course, fenêtre.x:" + x); un(); alert ("après une course, fenêtre.x:" + x);Il y a les couches suivantes ici: Window, Func A, Func B, Func C est toujours imbriquée à des niveaux. fenêtre-> a-> b-> c
La fenêtre et une variable définis x, et B n'est pas définie. Un X est déclaré en C, qui modifie finalement la valeur de la variable a.
N'oubliez pas, en JavaScript, déclarez les variables, et vous devez ajouter VAR avant elle.