Heim  >  Artikel  >  Web-Frontend  >  Warum müssen wir das Schlüsselwort var hinzufügen, wenn wir Variablen in JavaScript_javascript-Tipps deklarieren?

Warum müssen wir das Schlüsselwort var hinzufügen, wenn wir Variablen in JavaScript_javascript-Tipps deklarieren?

WBOY
WBOYOriginal
2016-05-16 16:34:521265Durchsuche

In JavaScript wird var zum Deklarieren von Variablen verwendet, diese Syntax ist jedoch nicht unbedingt erforderlich. In vielen Fällen können wir eine Variable direkt verwenden, ohne sie mit var zu deklarieren.

Code kopieren Der Code lautet wie folgt:

var x = „XX“; y="xxx";

Und so weiter. Es gibt ein Problem. Ich möchte beispielsweise in einer bestimmten Codezeile eine deklarierte Variable x verwenden. Aufgrund von Tipp- oder Rechtschreibfehlern wird die Variable als y geschrieben. Implizite" Deklaration einer Variablen. y, im eigentlichen Programmierprozess ist diese Art von Fehler manchmal schwer zu finden.
Wenn Sie diese „implizite“ Deklaration im aktuellen Kontext vornehmen, sucht die JavaScript-Engine zunächst im aktuellen Kontext, um zu sehen, ob diese Variable bereits zuvor deklariert wurde. Wenn nicht, gehen Sie zum vorherigen Kontext, um danach zu suchen nicht gefunden, diese Variable wird endgültig im Fenster deklariert!
Zum Beispiel:
Der Code lautet wie folgt:

window. y = "hello"; 
function func(){ 
y = "OH, NO!!!"; 
} 
func(); 
alert(window.y); //#=> display "OH, NO!!!" 
Wenn eine Ebene im Kontext eine solche „implizite“ definierte Variable hat, wird die Variable in dieser Ebene geändert, ohne dass eine neue Variable im Fenster generiert wird. (Diese Art von Fehler ist auch ziemlich ärgerlich, insbesondere wenn komplexerer Code gekapselt wird)

Zum Beispiel:

Der Code lautet wie folgt:

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); 
Es gibt folgende Ebenen: window, func a, func b, func c sind immer hierarchisch verschachtelt. Fenster->a->b->c

Sowohl in window als auch in a ist die Variable x definiert, aber in b ist die Variable nicht definiert. In c wird ein x „implizit“ deklariert, und das x ändert letztendlich den Wert der a-Variablen.
Denken Sie daran, dass in JavaScript beim Deklarieren einer Variablen var.
vorangestellt werden muss

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn