JavaScript -Bereich
Scope bestimmt die Zugänglichkeit (Sichtbarkeit) von Variablen.
JavaScript hat 3 Arten von Bereichen:
- Bereich blockieren
- Funktionsumfang
- Globaler Geltungsbereich
Bereich blockieren
Vor ES6 (2015) hatte JavaScript nur Global Scope und Function Scope .
ES6 hat zwei wichtige neue JavaScript-Schlüsselwörter eingeführt: let
und const
.
Diese beiden Schlüsselwörter stellen den Blockbereich in JavaScript bereit.
Auf Variablen, die innerhalb eines { }-Blocks deklariert sind, kann nicht von außerhalb des Blocks zugegriffen werden:
Beispiel
{
let x = 2;
}
// x can NOT be used here
Mit dem Schlüsselwort deklarierte Variablen var
können KEINEN Blockbereich haben.
Auf innerhalb eines { }-Blocks deklarierte Variablen kann von außerhalb des Blocks zugegriffen werden.
Beispiel
{
var x = 2;
}
// x CAN be used here
Lokaler Geltungsbereich
Innerhalb einer JavaScript-Funktion deklarierte Variablen werden für die Funktion LOCAL .
Beispiel
// code here can NOT use carName
function myFunction() {
let carName = "Volvo";
// code here CAN use carName
}
// code here can NOT use carName
Lokale Variablen haben einen Funktionsumfang :
Auf sie kann nur innerhalb der Funktion zugegriffen werden.
Da lokale Variablen nur innerhalb ihrer Funktionen erkannt werden, können gleichnamige Variablen in verschiedenen Funktionen verwendet werden.
Lokale Variablen werden erstellt, wenn eine Funktion gestartet wird, und gelöscht, wenn die Funktion abgeschlossen ist.
Funktionsumfang
JavaScript hat einen Funktionsbereich: Jede Funktion erstellt einen neuen Bereich.
Innerhalb einer Funktion definierte Variablen sind von außerhalb der Funktion nicht zugänglich (sichtbar).
var
Mit , let
und deklarierte Variablen const
sind ziemlich ähnlich, wenn sie innerhalb einer Funktion deklariert werden.
Sie alle haben Funktionsumfang :
function myFunction() {
var carName = "Volvo";
// Function Scope
}
function myFunction() {
let carName = "Volvo"; //
Function Scope
}
function myFunction() {
const carName = "Volvo"; //
Function Scope
}
Globale JavaScript-Variablen
Eine außerhalb einer Funktion deklarierte Variable wird zu GLOBAL .
Beispiel
let carName = "Volvo";
// code here can use carName
function myFunction() {
// code here can also use carName
}
Eine globale Variable hat einen globalen Gültigkeitsbereich :
Alle Skripte und Funktionen einer Webseite können darauf zugreifen.
Globaler Geltungsbereich
Global deklarierte Variablen (außerhalb jeder Funktion) haben globalen Gültigkeitsbereich .
Auf globale Variablen kann von überall in einem JavaScript-Programm zugegriffen werden.
var
Mit , let
und deklarierte Variablen const
sind ziemlich ähnlich, wenn sie außerhalb eines Blocks deklariert werden.
Sie alle haben einen globalen Geltungsbereich :
var x = 2;
// Global scope
let x = 2; //
Global scope
const x = 2; //
Global scope
JavaScript-Variablen
In JavaScript sind Objekte und Funktionen ebenfalls Variablen.
Der Umfang bestimmt die Zugänglichkeit von Variablen, Objekten und Funktionen aus verschiedenen Teilen des Codes.
Automatisch global
Wenn Sie einer nicht deklarierten Variablen einen Wert zuweisen, wird sie automatisch zu einer GLOBAL - Variablen.
In diesem Codebeispiel wird eine globale Variable deklariert carName
, auch wenn der Wert innerhalb einer Funktion zugewiesen wird.
Beispiel
myFunction();
// code here can use carName
function myFunction() {
carName = "Volvo";
}
strikter Modus
Alle modernen Browser unterstützen die Ausführung von JavaScript im "Strict Mode".
In einem späteren Kapitel dieses Tutorials erfahren Sie mehr über die Verwendung des strikten Modus.
Im "Strict Mode" sind nicht deklarierte Variablen nicht automatisch global.
Globale Variablen in HTML
Bei JavaScript ist der globale Geltungsbereich die JavaScript-Umgebung.
In HTML ist der globale Gültigkeitsbereich das Fensterobjekt.
Mit dem Schlüsselwort definierte globale Variablen var
gehören zum Fensterobjekt:
Beispiel
var carName = "Volvo";
// code here
can use window.carName
Mit dem Schlüsselwort definierte globale Variablen let
gehören nicht zum Fensterobjekt:
Beispiel
let carName = "Volvo";
// code here can not use window.carName
Warnung
Erstellen Sie KEINE globalen Variablen, es sei denn, Sie beabsichtigen dies.
Ihre globalen Variablen (oder Funktionen) können Fenstervariablen (oder Funktionen) überschreiben.
Jede Funktion, einschließlich des Fensterobjekts, kann Ihre globalen Variablen und Funktionen überschreiben.
Die Lebensdauer von JavaScript-Variablen
Die Lebensdauer einer JavaScript-Variablen beginnt mit ihrer Deklaration.
(Lokale) Funktionsvariablen werden gelöscht, wenn die Funktion abgeschlossen ist.
In einem Webbrowser werden globale Variablen gelöscht, wenn Sie das Browserfenster (oder die Registerkarte) schließen.
Funktionsargumente
Funktionsargumente (Parameter) funktionieren als lokale Variablen innerhalb von Funktionen.