In JavaScript wird Var zum Deklarieren von Variablen verwendet, diese Syntax ist jedoch nicht ausschließlich erforderlich. Oft können wir eine Variable direkt verwenden, ohne Var zu verwenden, um sie zu deklarieren.
Die Codekopie lautet wie folgt:
var x = "xx";
y = "xxx";
Und so weiter. Dazu gibt es ein Problem. In einer Zeile im Code möchte ich beispielsweise eine deklarierte Variable x verwenden. Infolgedessen wird diese Variable aufgrund von Tipp- oder Rechtschreibfehlern als y geschrieben. Das Ergebnis entspricht einer "impliziten" Erklärung einer Variablen y. In der tatsächlichen Programmierung ist dieser Fehler manchmal schwer zu erkennen.
Wenn Sie diese "implizite" Erklärung im aktuellen Kontext abgeben, wird die JavaScript -Engine zunächst nach der Defizierung dieser Variablen im aktuellen Kontext suchen. Wenn nicht, suchen Sie in der vorherigen Ebene des Kontextes. Wenn es nicht gefunden wurde, erklärt es diese Variable endlich im Fenster!
Zum Beispiel:
Der Code ist wie folgt:
Fenster. y = "Hallo"; Funktion func () {y = "Oh, nein !!!"; } func (); Alert (Fenster.Y); //#=> Anzeige "Oh, nein !!!"Wenn eine Schicht im Kontext eine solche "implizite" Definition von Variable hat, wird die Variable dieser Ebene geändert, ohne eine neue Variable im Fenster zu generieren. (Diese Art von Fehler ist ziemlich ärgerlich, insbesondere der eingekapselte komplexere Code)
Zum Beispiel:
Der Code ist wie folgt:
var x = "window.x"; Funktion a () {var x = "a's x"; var b = function () {var c = function () {// no var! x = "C's x:"; }; alert ("vor c laufen, der bx:" + x); C(); alarm ("nach c rennen, der bx:" + x); }; alert ("ax ist:" + x); B(); alarm ("Nach B -Funktionslauf ist die AX:" + x); }; alert ("vor einem Auslauf, window.x:" + x); A(); alert ("nach einem Lauf, window.x:" + x);Hier gibt es die folgenden Ebenen: Fenster, Func A, Func B, Func C ist immer auf Ebenen verschachtelt. Fenster-> a-> b-> c
Sowohl das Fenster als auch eine definierte Variable x und B ist nicht definiert. Ein X wird in C deklariert, was schließlich den Wert der Variablen a ändert.
Denken Sie daran, in JavaScript Variablen zu deklarieren, und Sie müssen VAR vorher hinzufügen.