JavaScript Variable Scope

Scope bezieht sich auf die Verfügbarkeit von Variablen und Funktionen in bestimmten Teilen des Codes.

In JavaScript hat eine Variable zwei Arten von Geltungsbereich:

  1. Globaler Geltungsbereich
  2. Lokaler Geltungsbereich

Globaler Geltungsbereich

Eine Variable, die oben in einem Programm oder außerhalb einer Funktion deklariert ist, wird als globale Bereichsvariable betrachtet.

Sehen wir uns ein Beispiel für eine globale Bereichsvariable an.

// program to print a text let a = "hello";function greet () { console.log(a);}greet(); // hello

Im obigen Programm wird die Variable a oben in einem Programm deklariert und ist eine globale Variable. Dies bedeutet, dass die Variable a überall im Programm verwendet werden kann.

Der Wert einer globalen Variablen kann innerhalb einer Funktion geändert werden. Zum Beispiel

// program to show the change in global variablelet a = "hello";function greet() { a = 3;}// before the function callconsole.log(a);//after the function callgreet();console.log(a); // 3

Im obigen Programm ist Variable a eine globale Variable. Der Wert von a ist hello. Dann wird innerhalb einer Funktion auf die Variable a zugegriffen und der Wert ändert sich in 3.

Daher ändert sich der Wert von a, nachdem er innerhalb der Funktion geändert wurde.

Hinweis: Es empfiehlt sich, die Verwendung globaler Variablen zu vermeiden, da sich der Wert einer globalen Variablen in verschiedenen Bereichen des Programms ändern kann. Es kann unbekannte Ergebnisse in das Programm einführen.

In JavaScript kann eine Variable auch ohne Deklaration verwendet werden. Wenn eine Variable verwendet wird, ohne sie zu deklarieren, wird diese Variable automatisch zu einer globalen Variablen.

Zum Beispiel

function greet() { a = "hello"}greet();console.log(a); // hello

Im obigen Programm ist Variable a eine globale Variable.

Wenn die Variable mit let a = "hello"deklariert wurde, würde das Programm einen Fehler ausgeben.

Hinweis: In JavaScript gibt es "strict mode"; in dem eine Variable nicht verwendet werden kann, ohne sie zu deklarieren. Um mehr über strict zu erfahren, besuchen Sie JavaScript Strict.

Lokaler Gültigkeitsbereich

Eine Variable kann auch einen lokalen Gültigkeitsbereich haben, d.h. sie kann nur innerhalb einer Funktion aufgerufen werden.

Beispiel 1: Lokale Bereichsvariable

// program showing local scope of a variablelet a = "hello";function greet() { let b = "World" console.log(a + b);}greet();console.log(a + b); // error

Ausgabe

helloWorldUncaught ReferenceError: b is not defined

Im obigen Programm ist Variable a eine globale Variable und Variable b eine lokale Variable. Auf die Variable b kann nur innerhalb der Funktion b zugegriffen werden. Wenn wir also versuchen, außerhalb der Funktion auf die Variable b zuzugreifen, tritt ein Fehler auf.

let is Block Scoped

Das let Schlüsselwort ist block-scoped (Variable kann nur im unmittelbaren Block zugegriffen werden).

Beispiel 2: Variable mit Blockbereich

// program showing block-scoped concept// global variablelet a = 'Hello';function greet() { // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') { // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); } // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c);}greet();

Ausgabe

Hello WorldHello World helloUncaught ReferenceError: x is not defined

Im obigen Programm ist die Variable

  • a eine globale Variable. Es kann überall im Programm zugegriffen werden.
  • b ist eine lokale Variable. Auf sie kann nur innerhalb der Funktion greet zugegriffen werden.
  • c ist eine Variable mit Blockbereich. Auf sie kann nur innerhalb des if Anweisungsblocks zugegriffen werden.

Daher funktionieren im obigen Programm die ersten beiden console.log() ohne Probleme.

Wir versuchen jedoch, auf die Blockvariable c außerhalb des Blocks im dritten console.log() zuzugreifen. Dies wird einen Fehler auslösen.

Hinweis: In JavaScript ist var auf Funktionen und let auf Blöcke beschränkt. Wenn Sie versuchen, var c = 'hello'; in der Anweisung if im obigen Programm zu verwenden, funktioniert das gesamte Programm, da c als lokale Variable behandelt wird.

Um mehr über let versus var Zu erfahren, besuchen Sie JavaScript let vs var.

Related Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.