Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der impliziten Deklarationsmethode der Javascript-Variablen

Detaillierte Erläuterung der impliziten Deklarationsmethode der Javascript-Variablen

怪我咯
怪我咯Original
2017-07-06 11:32:501886Durchsuche

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.

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.
Darüber hinaus habe ich heute durch die Vorstellung eines Kollegen von einem weiteren Problem in dieser „impliziten Erklärung“ erfahren.
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. Wenn es nicht gefunden wurde, wird diese Variable schließlich 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 „implizit“ definierte Variable hat, dann ist die Variable davon Ebene Die Variable wird 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 die Folgende Ebenen darin: window, func a, func b, func c sind immer hierarchisch verschachtelt. window->a->b->c
Sowohl window als auch a haben eine definierte Variable x, die Variable ist nicht in b definiert und eine Variable ist „implizit“ in c x deklariert, was letztendlich den Wert der Variablen a ändert.
Denken Sie daran, dass Sie in JavaScript beim Deklarieren einer Variablen var davor hinzufügen müssen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der impliziten Deklarationsmethode der Javascript-Variablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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