Heim >Web-Frontend >js-Tutorial >Warum sind meine globalen JavaScript-Variablen in Funktionen undefiniert?
Histing von JavaScript-Variablen: Das Geheimnis undefinierter globaler Variablen aufdecken
Bei der Arbeit mit JavaScript-Variablen kann es leicht zu überraschendem Verhalten kommen. Ein solcher Fall ist, wenn eine globale Variable innerhalb einer bestimmten Funktion einen undefinierten Wert zu haben scheint.
Beispiel:
var value = 10; function test() { console.log(value); // A var value = 20; console.log(value); // B } test();
Ausgabe:
undefined 20
Erklärung:
Das Verhalten stammt von JavaScript Variable Hoisting, das Variablen- und Funktionsdeklarationen automatisch an den Anfang des aktuellen Bereichs verschiebt. Das bedeutet:
Tatsächlich verhält sich der Code so, als ob er wie folgt geschrieben wäre:
var value; function test() { console.log(value); // undefined value = 20; console.log(value); // 20 }
Randbemerkung:Funktionsdeklarationen ebenfalls einer Hebung unterzogen werden. Aus diesem Grund können Sie im Gegensatz zu Variablenzuweisungen eine Funktion aufrufen, bevor sie deklariert wird.
Fazit:
Bei der Arbeit mit JavaScript-Variablen sollte das Heben von Variablen in Betracht gezogen werden. Durch das Verständnis dieses Verhaltens können Entwickler unerwartete undefinierte Werte in ihrem Code vermeiden. Darüber hinaus können Ressourcen wie Ben Cherrys „JavaScript Scoping and Hoisting“ weitere Einblicke in diesen grundlegenden Aspekt von JavaScript liefern.
Das obige ist der detaillierte Inhalt vonWarum sind meine globalen JavaScript-Variablen in Funktionen undefiniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!