Was ist die Funktion des folgenden Codeausschnitts?
var scope = "global scope";
function checkscope() {
  var scope = "local scope";
  function func() {
    return scope;
  }
  return func;
}

Verständnis der Funktionsweise von Scopes in JavaScript Funktionen

Die korrekte Antwort auf die Quizfrage ist, dass der Codeauschnitt den Wert in scope zurückgibt. Aber was bedeutet das und wie funktioniert das genau? Um das zu erklären, müssen wir uns erst verstehen, wie Scopes in JavaScript funktionieren.

In JavaScript hat jede Funktion ihren eigenen Scope. Ein Scope ist der Kontext, in dem Variablen deklariert und aufgerufen werden. Wenn Sie eine Variable innerhalb einer Funktion deklarieren, ist sie nur innerhalb dieser Funktion verfügbar. Dies wird als lokaler Scope bezeichnet.

In unserem Codeausschnitt haben wir zwei Variablen namens scope. Die erste wird außerhalb einer Funktion deklariert und hat einen globalen Scope, was bedeutet, dass sie überall in unserem Code verfügbar ist. Die zweite wird innerhalb der Funktion checkscope deklariert und hat einen lokalen Scope, sie ist also nur innerhalb dieser Funktion verfügbar.

Jetzt zur Funktion checkscope(). Was sie tut, ist eine Funktion zurückzugeben - func(). Diese innere Funktion func() gibt den Wert von scope zurück. Welcher Wert ist das? Hier greift ein Prinzip in JavaScript namens Lexical Scoping oder statisches Scoping. Nach diesem Prinzip suchen innere Funktionen zuerst nach Variablen in ihrem eigenen Scope. Wenn sie dort nicht gefunden werden, suchen sie im nächstgelegenen übergeordneten Scope, und so weiter bis zum globalen Scope.

In unserem Fall sucht func() nach der Variable scope. Da es eine Variable mit diesem Namen in ihrem übergeordneten Scope (innerhalb checkscope()) gibt, wird dieser Wert zurückgegeben: "local scope".

Der Codeausschnitt demonstriert also, wie Scopes in JavaScript-Funktionen funktionieren und wie sie verwendet werden, um Variablen zu isolieren und zu verwalten. Das Verständnis von Scopes und wie sie funktionieren, ist grundlegend für das effektive Arbeiten mit JavaScript. Es ermöglicht Ihnen, genau zu kontrollieren, wo und wie Ihre Variablen verwendet werden, und hilft Ihnen, Fehler zu vermeiden und effizienten und sauberen Code zu schreiben.

Finden Sie das nützlich?