Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der impliziten Deklarationsmethode der Javascript-Variablen
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!