Neue Blockbereichsfunktion von JavaScript ES

Neue Blockbereichsfunktion von JavaScript ES

Vorwort:

Bevor wir uns mit dem Blockebenenbereich befassen, müssen wir uns mit dem Umfang vertraut machen. Der sogenannte Umfang ist der Bereich, innerhalb dessen ein Mitglied im Code arbeitet.

1. Was ist Blockbereich?

Der sogenannte Blockebenenbereich bedeutet, dass die Variable nur in dem Codeblock oder Untercodeblock verwendet werden kann, in dem sie deklariert ist. In Versionen vor ECMAScript 2015 gibt es keinen Blockebenenbereich. ECMAScript 2015 bietet das Schlüsselwort let, das den Blockebenenbereich in JavaScript aktiviert. Der Beispielcode lautet wie folgt:

/*
 * Im Bereich auf Blockebene kann nur das Schlüsselwort let verwendet werden. * Das Schlüsselwort let kann nicht nur den Bereich auf Blockebene deklarieren, sondern auch im globalen Bereich und im Funktionsbereich verwendet werden. * /
// Globaler Gültigkeitsbereich let a = 100; // Globale Variablen (Funktion () {
  // Funktionsumfang let b = 200; // lokale Variable })()
wenn (wahr) {
  // Blockbereich let c = 300; // lokale Variable }
konsole.log(a); // 100
console.log(b); // wirft eine Ausnahme console.log(c); // wirft eine Ausnahme

2. Warum brauchen wir Blockbereich?

ECMAScript 5 hat nur einen globalen Gültigkeitsbereich und Funktionsumfang, aber keinen Blockgültigkeitsbereich. Diese Situation wirft einige Probleme auf:

Lokale Variablen können globale Variablen überschreiben

var v = 100;
(Funktion(){
  console.log(v); // undefiniert 
  var v = 200;
})


Die zum Zählen im Schleifenkörper verwendete Variable wird als globale Variable weitergegeben.

// Definiere einen Schleifenkörper für (var v = 0; v < 10; v++) {
  console.log("Dies ist eine For-Schleife"); // Dies ist eine For-Schleife * 10
}
konsole.log(v); // 10

Wenn die Variable nach Abschluss der Schleife nicht manuell freigegeben wird, bleibt ihr Lebenszyklus mit dem Skript bestehen und belegt Speicher.

3. Mit Funktionsdeklaration

ECMAScript5 Standard legt fest, dass Funktionen nur im globalen Gültigkeitsbereich und im Funktionsbereich deklariert werden können, nicht jedoch im Blockgültigkeitsbereich.

Fall 1:

wenn (wahr) {
  Funktion f() {}
}


Fall 2:

versuchen {
  Funktion f() {}
} Fang(e) {
  // ...
}

Die beiden oben genannten Funktionsdeklarationen sind laut ECMAScript5 unzulässig.

ECMAScript 2015 Standard legt fest, dass das Deklarieren einer Funktion in einem Blockebenenbereich der Verwendung des Schlüsselworts var ähnelt, was bedeutet, dass außerhalb des aktuellen Blockebenenbereichs nicht darauf zugegriffen werden kann.

{
  Funktion Spaß() {
    console.log('das macht Spaß');
  }
}
spaß(); // das macht Spaß
// Das Obige ist äquivalent zu der folgenden Funktion {
  var fn = Funktion () {
    console.log('das ist fn');
  }
}
fn(); // das ist fn
// Wenn Sie das Schlüsselwort let verwenden, können Sie außerhalb des Blockbereichs nicht darauf zugreifen {
  lass f = Funktion () {
    console.log('das ist f');
  }
}
f(); // Löst eine Ausnahmebeschreibung von ReferenceError aus: f ist nicht definiert

Dies ist das Ende dieses Artikels über die neue Block-Level-Scope-Funktion von JavaScript ES . Weitere Informationen zur neuen Block-Level-Scope-Funktion von ES finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • JavaScript-Grundlagen: Geltungsbereich
  • Fortgeschrittene JavaScript-Programmierung: Variablen und Umfang
  • Grafische Erklärung des zugrunde liegenden Prinzips der JavaScript-Bereichskette
  • Statischer und dynamischer Gültigkeitsbereich von JavaScript anhand von Beispielen erklärt
  • Javascript-Bereich und Abschlussdetails
  • Synchrone und asynchrone JS-Schwierigkeiten sowie Umfang und Abschluss und detaillierte Erklärung von Prototypen und Prototypenketten
  • Eine kurze Diskussion über den JavaScript-Bereich

<<:  Lösung zur Definition der Mindestspannweite hat keine Auswirkung

>>:  Einführung in häufig verwendete Schriftarten im Web (Schriftarten, die von iOS- und Android-Browsern unterstützt werden)

Artikel empfehlen

Beispiel für Sterne für den CSS-Bewertungseffekt

Was? Welcher Sternenmantel? Schauen wir uns zur V...

XHTML-Erste-Schritte-Tutorial: Verwenden des Frame-Tags

<br />Durch die Frame-Struktur ist die gleic...

Umfassende Website-Bewertungslösung

<br />Manchmal werden Ihnen möglicherweise F...

So aktualisieren Sie die Knotenversion unter CentOs manuell

1. Suchen Sie das entsprechende NodeJS-Paket unte...

Detaillierte Verwendung des Kubernetes-Objektvolumens

Überblick Volume ist die Abstraktion und Virtuali...

Wie füge ich ein Website-Symbol hinzu?

Der erste Schritt besteht darin, eine Software zur...

Ein genauerer Blick auf SQL-Injection

1. Was ist SQL-Injection? SQL-Injection ist eine ...

Lösung für das Timeout-Problem bei der Installation von Docker-Compose mit PIP

1: Installationsbefehl pip install docker-compose...

Methode zur Änderung des MySQL-Kontokennworts (Zusammenfassung)

Vorwort: Bei der täglichen Verwendung der Datenba...

Bringen Sie Ihnen bei, wie Sie die rekursive Methode von MySQL8 verwenden

Ich habe zuvor einen Artikel über rekursive Abfra...

CSS implementiert fünf gängige 2D-Transformationen

2D-Transformationen in CSS ermöglichen es uns, ei...

Zusammenfassung der Wissenspunkte zum CSS-Frontend (unbedingt lesen)

1. Das Konzept von CSS: (Cascading Style Sheet) V...