JavaScript & TypeScript
2 Minuten

Scope in JavaScript

Lass uns über Scope in JavaScript sprechen. Das Konzept des Scopes ist wirklich wichtig, weil es bestimmt, wo genau Variablen und Funktionen in deinem Code leben und wie du auf sie zugreifen kannst. Ich werde versuchen, es dir so klar wie möglich zu erklären, also lass uns gleich eintauchen!

Scope ist im Grunde genommen der Bereich oder der Kontext, in dem Variablen und Funktionen in deinem Code existieren und sichtbar sind. Es gibt verschiedene Arten von Scope, die wir uns genauer ansehen werden: den Global Scope, den Local Scope, den Function Scope und den Block Scope.

Global Scope:

Stell dir den Global Scope wie das große, weite Universum deines Codes vor. Hier leben Variablen und Funktionen, die außerhalb aller anderen Bereiche deines Codes definiert sind. Das bedeutet, dass sie von überall in deinem Code aus zugänglich sind.

var globalVariable = "I am global";

function greet() {

  console.log(globalVariable); // Output: "I am global"

}

greet();

console.log(globalVariable); // Output: "I am global"

Hier sehen wir, dass globalVariable im Global Scope lebt und von überall im Code aus zugänglich ist.

Local Scope:

Der Local Scope ist wie ein kleines, begrenztes Ökosystem innerhalb deines Codes. Hier leben Variablen und Funktionen, die innerhalb eines bestimmten Bereichs deines Codes definiert sind. Sie sind nur innerhalb dieses Bereichs sichtbar und können von außerhalb nicht darauf zugegriffen werden.

function greet() {

  var localVariable = "I am local";

  console.log(localVariable); // Output: "I am local"

}

greet();

console.log(localVariable); // Error: localVariable is not defined

In diesem Beispiel sehen wir, dass localVariable nur innerhalb der Funktion greet sichtbar ist und von außerhalb nicht darauf zugegriffen werden kann.

Function Scope:

Innerhalb des Local Scope gibt es den Function Scope. Wenn du eine Variable innerhalb einer Funktion deklarierst, gehört sie zum Function Scope dieser Funktion. Das bedeutet, dass sie nur innerhalb dieser Funktion sichtbar ist und von außerhalb nicht darauf zugegriffen werden kann.

function greet() {

  var functionVariable = "I am local to greet function";

  console.log(functionVariable); // Output: "I am local to greet function"

}

greet();

console.log(functionVariable); // Error: functionVariable is not defined

Hier sehen wir, dass functionVariable nur im Function Scope der Funktion greet sichtbar ist und von außerhalb nicht darauf zugegriffen werden kann.

Block Scope:

Und schließlich haben wir den Block Scope, der ähnlich wie der Function Scope funktioniert, aber für Blöcke von Code wie Schleifen oder bedingte Anweisungen gilt. Variablen, die innerhalb eines solchen Blocks mit let oder const deklariert werden, sind nur innerhalb dieses Blocks sichtbar und können von außerhalb nicht darauf zugegriffen werden.

if (true) {

  let blockVariable = "I am inside a block";

  console.log(blockVariable); // Output: "I am inside a block"

}

console.log(blockVariable); // Error: blockVariable is not defined

Hier sehen wir, dass blockVariable nur innerhalb des Blocks der if-Anweisung sichtbar ist und von außerhalb nicht darauf zugegriffen werden kann.

Das ist also das Wesentliche von Scope in JavaScript! Es mag zunächst etwas komplex erscheinen, aber je mehr du dich damit beschäftigst und übst, desto besser wirst du es verstehen. Es ist wirklich wichtig, weil es dir hilft, deinen Code zu organisieren und zu verstehen, wie alles miteinander interagiert.