Sobes.tech
Junior

Was ist der Gültigkeitsbereich in JavaScript?

sobes.tech KI

Antwort von AI

Der Gültigkeitsbereich (Scope) in JavaScript ist der Kontext, in dem Variablen und Funktionen definiert und zugänglich sind.

Einfach ausgedrückt, bestimmt er, wo im Code auf eine Variable oder Funktion verwiesen werden kann.

Es gibt verschiedene Arten von Gültigkeitsbereichen:

  • Globaler Gültigkeitsbereich (Global Scope): Variablen, die außerhalb von Funktionen deklariert werden, befinden sich im globalen Gültigkeitsbereich. Sie sind überall im Code zugänglich.
    // Globale Variable
    let globalVar = "Ich bin überall sichtbar";
    
    function showGlobal() {
      console.log(globalVar); // Innerhalb der Funktion zugänglich
    }
    
    showGlobal();
    
  • Lokaler (Funktions-)Gültigkeitsbereich (Local/Function Scope): Variablen, die innerhalb einer Funktion deklariert werden, befinden sich im lokalen Gültigkeitsbereich dieser Funktion. Sie sind nur innerhalb dieser Funktion und in verschachtelten Funktionen zugänglich, aber nicht außerhalb.
    function showLocal() {
      // Lokale Variable
      let localVar = "Ich sehe nur hier";
      console.log(localVar);
    }
    
    showLocal();
    // console.log(localVar); // Fehler: localVar ist nicht definiert
    
  • Blockscope (Block Scope): Eingeführt in ES6 (ES2015) mit let und const. Variablen, die mit let oder const innerhalb von geschweiften Klammern ({}) deklariert werden, z.B. in Codeblöcken, Schleifen oder Bedingungen, haben Blockscope. Variablen, die mit var deklariert werden, haben keinen Blockscope.
    if (true) {
      // Variable mit Blockscope
      let blockVar = "Nur in diesem Block sichtbar";
      console.log(blockVar);
    }
    
    // console.log(blockVar); // Fehler: blockVar ist nicht definiert
    
    for (let i = 0; i < 2; i++) {
      // Variable mit Blockscope im Loop
      console.log(i);
    }
    
    // console.log(i); // Fehler: i ist nicht definiert (wenn let verwendet wurde)
    

Es ist auch wichtig, das Konzept der Scope-Kette (Scope Chain) zu verstehen. Wenn JavaScript versucht, den Wert einer Variablen zu finden, sucht es zuerst im aktuellen Gültigkeitsbereich. Wenn nicht gefunden, geht es zum äußeren (Eltern-)Gültigkeitsbereich und so weiter, bis zum globalen Gültigkeitsbereich. Wenn die Variable auch dort nicht gefunden wird, wird ein ReferenceError ausgelöst.