Alle außerhalb der Funktion definierten Personen sind globale Variablen, und die innerhalb der Funktion definierten lokalen Variablen. Die Definition hier bezieht sich auf die Erklärung von Var.
JavaScript hat ein implizites globales Konzept, was bedeutet, dass jede Variable, die Sie nicht erklären, zu einer globalen Objekteigenschaft wird. Zum Beispiel:
Die Codekopie lautet wie folgt:
Funktionstest () {
myName = "Huming";
Alarm (MyName);
}
prüfen(); // "Huming"
Alarm (MyName); // "Huming"
Die beiden Ergebnisse sind gleich, was darauf hinweist, dass MyName eine globale Variable ist.
Gibt es also einen Unterschied zwischen impliziten globalen Variablen und gut definierten globalen Variablen? . Es muss eine Antwort geben, siehe das folgende Beispiel:
Die Codekopie lautet wie folgt:
// drei globale Variablen definieren
var Global_test1 = 1;
global_test2 = 2; // Negatives Lehrbuch
(function () {
global_test3 = 3; // Negatives Lehrbuch
} ());
// Versuch zu löschen
löschen global_test1; // FALSCH
löschen global_test2; // WAHR
löschen global_test3; // WAHR
// die Löschung testen
alert (typeof global_test1); // "Nummer"
alert (typeof global_test2); // "undefiniert"
alert (typeof global_test3); // "undefiniert"
Aus dem obigen Beispiel können wir sehen, dass Global_Test1, das von VAR außerhalb der Funktion definiert ist, nicht gelöscht werden kann, während Global_Test2 und Global_test3 nicht von Var definiert werden (unabhängig davon, ob es in der Funktionsbehörde erstellt wurde oder nicht).
Zusammenfassend können globale Variablen, die außerhalb der Funktion deklariert sind, nicht gelöscht werden, während implizite globale Variablen gelöscht werden können.
Hinweis hier: JavaScript hat ein Verhalten namens "Heben" (Hängen/Stop -Parsen/Vorbereitungen).
Verwenden wir ein Beispiel, um zu veranschaulichen:
Die Codekopie lautet wie folgt:
var myname = "Huming"; // globale Variablen deklarieren
Funktionstest () {
Alarm (MyName);
var myname = "local_huming";
Alarm (MyName);
}
prüfen();
Vermutlich ist der Inhalt von Alarm zweimal konsistent? ? Ist es offensichtlich inkonsistent, diese Konsistenz zu sagen? . Die tatsächliche Ausgabe lautet: "undefiniert", "local_huming".
Das obige Beispiel entspricht
Die Codekopie lautet wie folgt:
var myname = "Huming"; // globale Variablen deklarieren
Funktionstest () {
var myname;
Alert (Maname); <br> myName = "local_huming";
Alarm (MyName); // "lokal"
}
prüfen();
Der erste Alarmausgang MyName ist nicht die globale Variable, die Sie denken, sondern die lokale Variable innerhalb eines Bereichs (ein Funktionskörper). Obwohl es nicht erklärt wurde, wurde es als Erklärung angesehen. Dies wird als "Heben" bezeichnet.
Dies sollte verstanden werden. Wenn Sie eine Variable in der Funktionskörper verwenden und sie später neu anklären, kann ein Fehler auftreten.
Schreibspezifikationen:
Die Codekopie lautet wie folgt:
Funktionstest () {
var a = 1,
B = 2,
c = a + b,
d = {},
e
F;
// Funktionskörper ...
}
Die Vorteile sind:
1. Alle lokalen Variablen sind zu Beginn der Funktion definiert, was für die Suche geeignet ist.
2. Verhindern Sie, dass logische Fehler verwendet werden, bevor die Variable definiert wird.
Haben Sie die variable Deklaration von JavaScript verstanden? Der obige Inhalt ist sehr detailliert und leicht zu verstehen. Die endgültige Zusammenfassung ist auch sehr relevant. Verpassen Sie es nicht.