Heim  >  Artikel  >  Web-Frontend  >  Die Variablendeklaration in JavaScript erfolgt vor der Zuweisung

Die Variablendeklaration in JavaScript erfolgt vor der Zuweisung

高洛峰
高洛峰Original
2016-11-26 09:18:431165Durchsuche

Wie folgt
var a = 3;
Es gibt eigentlich zwei Schritte:
1 Initialisiere a auf undefiniert
2 Weise einen Wert zu 3

Es wird also einige geben " Unglaubliche Dinge Phänomen, das heißt, Variablen in JS können zuerst verwendet und dann deklariert werden. Dies ist in Java nicht zulässig.
System.out.println(a);
int a = 1;
Kompilierung schlägt fehl. Aber JS kann wie folgt:
alert(a);
var a;
Obwohl es undefiniert ist, wird kein Fehler gemeldet. Es zeigt, dass a tatsächlich deklariert und undefiniert ist.

Wenn es nur „alert(a)“ ohne „var a“ ist, meldet die JS-Engine einen Fehler.
alert(a);
Wie in FF gezeigt, kann

Die Variablendeklaration in JavaScript erfolgt vor der Zuweisung

zuerst verwendet und dann deklariert werden, dies führt jedoch dazu, dass die Wirkung der Zuweisung beeinträchtigt wird verloren. Wie folgt
alert(a);
var a = 1;
Dieses Mal ist die Ausgabe immer noch undefiniert statt 1.

Ein weiteres Beispiel:
alert('a' in window); // true
var a;
Obwohl der Code nach der Warnung offiziell geschrieben wird, verarbeitet die Engine die Var-Deklaration trotzdem automatisch Erste . Die endgültige Ausgabe ist wahr.

Nachdem man dies verstanden hat, ist es nicht schwer, die Ergebnisse des folgenden Codes zu verstehen

if (!("a" in window)) {
var a = 1;
}
alert(a);


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