5.1 Globaler Gültigkeitsbereich
Gültigkeitsbereiche (scopes) bestimmen die Verfügbarkeit von Variablen und Funktionen in verschiedenen Teilen des Programms. In JavaScript gibt es drei Haupttypen von Gültigkeitsbereichen: global, lokal und block. Das Verständnis dieser Gültigkeitsbereiche ist wichtig für das effektive Datenmanagement und zur Vermeidung von Fehlern im Code.
Der globale Gültigkeitsbereich umfasst alle Variablen und Funktionen, die außerhalb von Funktionen oder Codeblöcken deklariert sind. Diese Variablen und Funktionen sind von überall im Code aus zugänglich.
Beispiel 1: Deklaration globaler Variablen
var globalVar = 'I am a global variable';
function showGlobalVar() {
console.log(globalVar); // Zugriff auf globale Variable
}
showGlobalVar(); // Gibt aus: I am a global variable
console.log(globalVar); // Zugriff auf globale Variable
Beispiel 2: Globale Funktionen
In diesem Beispiel sind die Variable globalVar
und die Funktion globalFunction()
im globalen
Gültigkeitsbereich deklariert und von überall im Code zugänglich.
function globalFunction() {
return 'I am a global function';
}
console.log(globalFunction()); // Gibt aus: I am a global function
5.2 Lokaler Gültigkeitsbereich
Der lokale Gültigkeitsbereich umfasst Variablen und Funktionen, die innerhalb einer Funktion deklariert sind. Diese Variablen und Funktionen sind nur innerhalb dieser Funktion verfügbar und außerhalb nicht zugänglich.
Beispiel 3: Deklaration lokaler Variablen
In diesem Beispiel ist die Variable localVar
innerhalb der Funktion localScopeExample()
deklariert und außerhalb dieser Funktion nicht verfügbar:
function localScopeExample() {
var localVar = 'I am a local variable';
console.log(localVar); // Zugriff auf lokale Variable
}
localScopeExample(); // Gibt aus: I am a local variable
console.log(localVar); // Fehler: localVar is not defined
Beispiel 4: Lokale Funktionen
In diesem Beispiel ist die Funktion innerFunction()
innerhalb der Funktion outerFunction()
deklariert und
außerhalb von outerFunction()
nicht verfügbar:
function outerFunction() {
function innerFunction() {
return 'I am a local function';
}
console.log(innerFunction()); // Zugriff auf lokale Funktion
}
outerFunction(); // Gibt aus: I am a local function
console.log(innerFunction()); // Fehler: innerFunction is not defined
5.3 Block-Gültigkeitsbereich
Der Block-Gültigkeitsbereich umfasst Variablen, die mit let
und const
innerhalb eines Codeblocks deklariert sind,
der durch geschweifte Klammern {}
begrenzt ist. Diese Variablen sind nur innerhalb dieses Blocks zugänglich und außerhalb nicht verfügbar.
Beispiel 5: Deklaration von Variablen mit let
In diesem Beispiel ist die Variable blockVar
innerhalb des if
-Blocks deklariert und außerhalb nicht verfügbar:
if (true) {
let blockVar = 'I am a block-scoped variable';
console.log(blockVar); // Zugriff auf Block-Variable
}
console.log(blockVar); // Fehler: blockVar is not defined
Beispiel 6: Deklaration von Variablen mit const
In diesem Beispiel ist die Variable i
innerhalb des for
-Blocks deklariert und außerhalb nicht verfügbar:
for (const i = 0; i < 3; i++) {
console.log(i); // Zugriff auf Block-Variable
}
console.log(i); // Fehler: i is not defined
Besonderheiten des Block-Gültigkeitsbereichs
Beispiel 7: Verschachtelte Blöcke
In diesem Beispiel ist die Variable innerVar
nur innerhalb des inneren Blocks verfügbar, während die Variable outerVar
sowohl im äußeren als auch im inneren Block verfügbar ist:
if (true) {
let outerVar = 'I am in the outer block';
if (true) {
let innerVar = 'I am in the inner block';
console.log(outerVar); // Zugriff auf Variable des äußeren Blocks
console.log(innerVar); // Zugriff auf Variable des inneren Blocks
}
console.log(outerVar); // Zugriff auf Variable des äußeren Blocks
console.log(innerVar); // Fehler: innerVar is not defined
}
5.4 Interaktion zwischen verschiedenen Gültigkeitsbereichen
Beispiel 8: Interaktion zwischen globalem und lokalem Gültigkeitsbereich
In diesem Beispiel hat die Funktion scopeExample()
Zugriff auf die globale Variable globalVar
und auf ihre lokale Variable localVar
:
var globalVar = 'I am a global variable';
function scopeExample() {
var localVar = 'I am a local variable';
console.log(globalVar); // Zugriff auf globale Variable
console.log(localVar); // Zugriff auf lokale Variable
}
scopeExample(); // Gibt aus: I am a global variable
// I am a local variable
console.log(globalVar); // Zugriff auf globale Variable
console.log(localVar); // Fehler: localVar is not defined
Beispiel 9: Gültigkeitsbereiche mit Pfeilfunktion
In diesem Beispiel hat die Pfeilfunktion arrowFunction()
Zugriff auf die globale Variable globalVar
und auf ihre lokale Variable localVar
:
let globalVar = 'I am a global variable';
const arrowFunction = () => {
let localVar = 'I am a local variable in arrow function';
console.log(globalVar); // Zugriff auf globale Variable
console.log(localVar); // Zugriff auf lokale Variable
};
arrowFunction(); // Gibt aus: I am a global variable
// I am a local variable in arrow function
console.log(globalVar); // Zugriff auf globale Variable
console.log(localVar); // Fehler: localVar is not defined
GO TO FULL VERSION