Maison >interface Web >js tutoriel >Pourquoi devons-nous ajouter le mot-clé var lors de la déclaration de variables dans les astuces JavaScript_javascript

Pourquoi devons-nous ajouter le mot-clé var lors de la déclaration de variables dans les astuces JavaScript_javascript

WBOY
WBOYoriginal
2016-05-16 16:34:521280parcourir

En JavaScript, var est utilisé pour déclarer des variables, mais cette syntaxe n'est pas strictement obligatoire. Dans de nombreux cas, on peut utiliser une variable directement sans la déclarer avec var.

Copier le code Le code est le suivant :

varx = "XX";
y="xxx";

Et ainsi de suite. Il y a un problème. Par exemple, dans une certaine ligne du code, je souhaite utiliser une variable déclarée x. Par conséquent, en raison de fautes de frappe ou d'orthographe, la variable est écrite sous la forme y. Le résultat est équivalent à un ". déclaration "implicite" d'une variable. y, dans le processus de programmation réel, ce genre d'erreur est parfois difficile à trouver.
Lorsque vous effectuez cette déclaration "implicite" dans le contexte actuel, le moteur JavaScript recherchera d'abord dans le contexte actuel si cette variable a déjà été déclarée. Sinon, accédez au contexte précédent pour la rechercher. introuvable, , cette variable sera enfin déclarée sur la fenêtre !
Par exemple :

Le code est le suivant :

window. y = "hello"; 
function func(){ 
y = "OH, NO!!!"; 
} 
func(); 
alert(window.y); //#=> display "OH, NO!!!" 

Lorsqu'un calque du contexte a une telle variable définie "implicitement", la variable de ce calque sera modifiée sans générer de nouvelle variable dans la fenêtre. (Ce genre de bug est aussi assez gênant, surtout lors de l'encapsulation de code plus complexe)
Par exemple :

Le code est le suivant :

var x = "window.x"; 
function a() { 
var x = "a's x"; 
var b = function() { 
var c = function() { 
//no var! 
x = "c's x:"; 
}; 
alert("before c run,the b.x:" + x); 
c(); 
alert("after c run, the b.x:" + x); 
}; 
alert("a.x is:" + x); 
b(); 
alert("after b function runed, the a.x is:" + x); 
}; 
alert("before a run, window.x:" + x); 
a(); 
alert("after a run, window.x:" + x); 

Il y a les couches suivantes : window, func a, func b, func c sont toujours imbriquées hiérarchiquement. fenêtre->a->b->c
Dans window et a, la variable x est définie, mais dans b la variable n'est pas définie. Dans c, un x est déclaré « implicitement », et le x modifie finalement la valeur de la variable a.
N'oubliez pas qu'en JavaScript, lors de la déclaration d'une variable, celle-ci doit être précédée de var.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn