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
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);