Variablen und Variablendeklarationen sind die grundlegendsten Konzepte einer Sprache und Anfänger werden sie schnell beherrschen. Das Gleiche gilt für die Deklaration von Variablen in JavaScript. Es ist sehr einfach: var (Schlüsselwort) + Variablenname (Bezeichner).
Weg 1
Var-Test;
var test = 5; Es ist zu beachten, dass dieser Satz nicht in die Funktion aufgenommen werden kann, da es sich sonst um eine lokale Variable handelt. Dies ist die erste Möglichkeit, globale Variablen zu deklarieren.
Weg 2
Test = 5;
Weisen Sie dem Bezeichnertest direkt einen Wert zu, ohne var zu verwenden, wodurch implizit die globale Variable test deklariert wird. Selbst wenn sich die Anweisung innerhalb einer Funktion befindet, wird test bei Ausführung der Funktion zu einer globalen Variablen.
Weg 3
window.test;
window.test = 5; Diese Methode wird häufig verwendet, um einige Funktionen der Welt zugänglich zu machen, nachdem eine anonyme Funktion ausgeführt wurde. Wie der letzte Satz in JQuery1.5
window.jQuery = window.$ = jQuery;
Wenn Sie nur den Variablentest verwenden, gibt es keinen Unterschied zwischen den drei Methoden. Beispiel: Alert(test) zeigt 5 an. Allerdings gibt es in manchen Fällen Unterschiede zwischen den drei Methoden. Deklarieren Sie drei Variablen a1, a2, a3 auf die oben genannten drei Arten.
a1 = 11;
var a2 = 22;
Fenster.a3 = 33;
1. für im Fenster
for(a im Fenster){
if(a=='a1'||a=='a2'||a=='a3'){
Warnung(a)
}
}
IE6/7/8/9: Es wird nur a3 angezeigt, was darauf hinweist, dass globale Variablen, die über die erste und zweite Methode deklariert wurden, nicht über for im Fenster abgerufen werden können.
Firefox/Chrome/Safari/Opera: a1, a2 und a3 werden alle angezeigt, was darauf hinweist, dass globale Variablen, die auf drei Arten deklariert wurden, über for im Fenster abgerufen werden können.
2.Löschen
versuchen {
alarm(lösche a1);
}catch(e){alert('A1 kann nicht gelöscht werden')}
versuchen{
alarm(a2 löschen);
}catch(e){alert('A2 kann nicht gelöscht werden')}
versuchen{
alarm(a3 löschen);
}catch(e){alert('A3 kann nicht gelöscht werden')}
Die Ergebnisse sind wie folgt
Wie Sie sehen können,
1. delete a2 ist in allen Browsern falsch. Das heißt, über var deklarierte Variablen können nicht gelöscht werden und alle Browser verhalten sich gleich. Dies wird auch im Rhino-Buch erwähnt.
2. Über window.a3 deklarierte globale Variablen können in IE6/7/8 nicht gelöscht werden, sie können jedoch in IE9/Firefox/Chrome/Safari/Opera gelöscht werden.
Obwohl es Unterschiede in den beiden oben genannten Punkten gibt, geben beide bei der Verwendung im Betrieb true zurück.
alarm('a1' in window);//true
alarm('a2' in window);//true
alarm('a3' in window);//true
Bei Verwendung von with zum Öffnen des Objektfensters verhalten sich alle Browser wie folgt gleich
mit(Fenster){
if(a1){
alarm(a1);//11
}
if(a2){
alarm(a2);//22
}
if(a3){
alarm(a3);//33
}
}