In einigen C-ähnlichen Programmiersprachen hat jedes Code-Code in Curly-Klammern einen eigenen Bereich, und Variablen sind außerhalb des Codesegments, das sie deklariert, unsichtbar. Wir nennen Block -Umfang und es gibt keinen Blockbereich in JavaScript. Stattdessen verwendet JavaScript den Funktionsumfang: Variablen werden in der Funktionskörper definiert, die sie und jede in der Funktionsbehörde verschachtelte Funktionskörper deklariert. Im folgenden Code sind I, J und K an verschiedenen Orten definiert im selben Bereich definiert.
Die Codekopie lautet wie folgt:
Funktionstext (o)
{
var i = 0;
alarm (typeof o);
if (typeof o == "String")
{
var J = 0;
für (var k = 0; k <10; k ++)
{
Alarm (k); // Ausgabe 0-9
}
Alarm (k); // Ausgabe 10
}
Alarm (j); // Ausgabe 0
}
Der Funktionsumfang von JavaScript bedeutet, dass alle in einer Funktion deklarierten Variablen im Funktionskörper immer sichtbar sind. Interessanterweise bedeutet dies, dass die Variablen noch verfügbar sind, bevor sie deklariert werden. Dieses Merkmal von JavaScript wird informell als Hebezeuge bezeichnet, dh alle Variablen, die in der Funktionsbestandsgremium von JavaScript (keine Zuordnung beteiligt) deklariert sind, sind an die Spitze der Funktionsbehörde "erweitert". Schauen Sie sich den folgenden Code an
Die Codekopie lautet wie folgt:
var global = "globas";
Funktion global ()
{
Alarm (global); // undefiniert
var Global = "Hallo qdao";
Alarm (global); // Hallo Qdao
}
Aufgrund der Art des Funktionsbereichs werden lokale Variablen immer im gesamten Funktionskörper definiert, was bedeutet, dass die Variablen innerhalb der Funktionskörper globale Variablen mit demselben Namen abdecken. Trotzdem werden lokale Variablen wirklich zugewiesen, wenn das Programm die VAR -Anweisung ausführt. Daher entspricht der obige Vorgang: Deklarieren der Variablen in der Funktion "Fortschritt" an die Oberseite der Funktionskörper und lassen Sie die Initialisierung der Kollegenvariablen in der ursprünglichen Position:
Die Codekopie lautet wie folgt:
var global = "globas";
Funktion global ()
{
var global;
Alarm (global); // undefiniert
global = "Hallo qdao";
Alarm (global); // Hallo Qdao
}