Dinge, die außerhalb des Funktionskörpers definiert sind, sind globale Variablen, und Dinge, die innerhalb des Funktionskörpers definiert sind, sind lokale Variablen. Die Definition hier bezieht sich auf die Deklaration durch var.
JavaScript verfügt über das Konzept impliziter Globals, was bedeutet, dass jede Variable, die Sie nicht deklarieren, zu einer globalen Objekteigenschaft wird. Zum Beispiel:
Die beiden Ergebnisse sind gleich, was darauf hinweist, dass myname eine globale Variable ist.
Gibt es also einen Unterschied zwischen impliziten globalen Variablen und explizit definierten globalen Variablen? . Die Antwort lautet definitiv „Ja“, sehen Sie sich das Beispiel unten an:
Aus dem obigen Beispiel geht hervor: Global_test1, der durch eine Variable außerhalb der Funktion definiert ist, kann nicht gelöscht werden, und global_test2 und global_test3, die nicht durch eine Variable definiert sind, werden gelöscht (unabhängig davon, ob sie innerhalb des Funktionskörpers erstellt werden).
Zusammenfassend lässt sich sagen, dass globale Variablen, die über var außerhalb der Funktion deklariert wurden, nicht gelöscht werden können, implizite globale Variablen jedoch.
Hier ist zu beachten: JavaScript hat ein Verhalten namens „Hoisting“ (Suspendieren/Top-Parsing/Vorparsing).
Lassen Sie es uns anhand eines Beispiels veranschaulichen:
Glauben Sie, dass der Inhalt der beiden Warnungen derselbe ist? ? Offensichtlich inkonsistent, natürlich konsistent. . Die tatsächliche Ausgabe ist: „undefiniert“, „local_huming“.
Das obige Beispiel entspricht
Der von der ersten Warnung ausgegebene myname ist nicht die globale Variable, die Sie vermuten, sondern eine lokale Variable im selben Gültigkeitsbereich (ein Funktionskörper). Obwohl es nicht deklariert wurde, wird es als solches behandelt. Dies nennt man „Heben“.
Das sollte es klarstellen. Wenn Sie eine Variable in einem Funktionskörper verwenden und sie später erneut deklarieren, kann ein Fehler auftreten.
Schreibvorgaben:
Die Vorteile sind:
1. Alle lokalen Variablen werden zur einfachen Suche am Anfang der Funktion definiert;
2. Verhindern Sie logische Fehler, wenn Variablen verwendet werden, bevor sie definiert werden.Haben Sie die Variablendeklaration von JavaScript verstanden? Der obige Inhalt ist sehr detailliert und leicht zu verstehen. Die abschließende Zusammenfassung ist auch sehr relevant.