Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der JS-Variablendeklaration

Detaillierte Erläuterung der JS-Variablendeklaration

怪我咯
怪我咯Original
2017-07-06 11:31:481722Durchsuche

Unabhängig davon, wo die Variablendeklarationsanweisung von JavaScript erscheint, wird sie zuerst ausgeführt, bevor andere Codes angezeigt werden. In diesem Artikel können interessierte Freunde gemeinsam lernen >Unabhängig davon, wo eine JavaScript-Variablendeklarationsanweisung erscheint, wird sie zuerst vor anderem Code ausgeführt. Der Gültigkeitsbereich einer mit dem var-Schlüsselwort

deklarierten Variablen ist der aktuelle Ausführungskontext, bei dem es sich um eine periphere Funktion handeln kann. Wenn die Variable außerhalb des Funktionskörpers deklariert wird, handelt es sich um eine globale Variable.

Dinge, die außerhalb des Funktionskörpers definiert sind, sind globale Variablen, und diejenigen, 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. Beispiel:

Die beiden Ergebnisse sind gleich, was darauf hinweist, dass myname eine globale Variable ist.

function test(){
myname = "huming";
alert(myname);
}
test();  // "huming"
alert(myname);  //"huming"

Gibt es also einen Unterschied zwischen impliziten globalen Variablen und explizit definierten globalen Variablen? . Die Antwort ist definitiv Ja, schauen Sie sich das folgende Beispiel an:

Wie aus dem obigen Beispiel ersichtlich ist: global_test1, das durch var außerhalb der Funktion definiert ist, kann nicht gelöscht werden, während global_test2 und global_test3 nicht durch var definiert sind . werden gelöscht (unabhängig davon, ob sie innerhalb des Funktionskörpers erstellt wurden oder nicht).

// 定义三个全局变量
var global_test = ;
global_test = ; // 反面教材
(function () {
global_test = ; // 反面教材
}());
// 试图删除
delete global_test; // false
delete global_test; // true
delete global_test; // true
// 测试该删除
alert(typeof global_test); // "number"
alert(typeof global_test); // "undefined"
alert(typeof global_test); // "undefined"

Zusammenfassend lässt sich sagen, dass über var außerhalb der Funktion deklarierte globale Variablen nicht gelöscht werden können, implizite globale Variablen jedoch.

Hier ist zu beachten: JavaScript hat ein Verhalten namens „Hoisting“ (Suspendieren/Top-Parsing/Vorparsing).

Veranschaulichen wir es anhand eines Beispiels:

Vermuten Sie, dass die Inhalte der beiden Warnungen konsistent sind? ? Offensichtlich inkonsistent, natürlich konsistent. . Die tatsächliche Ausgabe ist: „undefiniert“, „local_huming“.

var myname = "huming"; //声明全局变量
function test() {
alert(myname);
var myname = "local_huming";
alert(myname);
}
test();

Das obige Beispiel entspricht

Der von der ersten Warnung ausgegebene myname ist nicht die globale Variable, die Sie vermuten, sondern befindet sich im selben Bereich (einem Funktionskörper). wie es) lokale Variablen innerhalb. Obwohl es nicht deklariert wurde, wird es als solches behandelt. Dies nennt man „Heben“.

var myname = "huming"; //声明全局变量
function test() {
  var myname;
  alert(maname);<br>  myname = "local_huming";
  alert(myname); // "local"
}
test();

Das sollte es klarstellen. Wenn Sie eine Variable in einem Funktionskörper verwenden und sie später erneut deklarieren, kann ein Fehler auftreten.

Spezifikationen schreiben:

Der Vorteil ist:

function test() {
var a = ,
b = ,
c = a + b,
d = {},
e,
f;
// function body...
}

1. Alle lokalen Variablen werden am Anfang der Funktion definiert leicht zu finden;

2. Verhindern Sie logische Fehler, die durch die Verwendung von Variablen verursacht werden, bevor diese definiert werden.

In JavaScript verfügt ein

Variablenname

(Name) über vier Möglichkeiten, den Bereich (Bereich) einzugeben. Die Sprache ist integriert, alles da Sind dies und Argumente Schlüsselwörter im Geltungsbereich

formale Parameter,
Parameter der Funktion

sind im gesamten Geltungsbereich gültig

Funktionsdeklaration

Variablendeklaration

Die vier oben aufgeführten Reihenfolgen entsprechen auch der Reihenfolge der

Priorität

von hoch nach niedrig. Sobald ein Variablenname deklariert wurde, kann er nicht mehr überschrieben werden andere Formen der Variablendeklaration mit niedrigerer Priorität.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der JS-Variablendeklaration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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