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

Erfahren Sie, wie nginx hohe Leistung und Skalierbarkeit erreicht.

Die Gesamtarchitektur von NGINX ist durch eine Re...

Detaillierte Erklärung des Abstandsproblems zwischen IMG-Tags

Grundlegende Analyse des IMG-Tags: In HTML5 beste...

Einführung in den Prozess zum Erstellen einer TCP-Verbindung im Linux-System

Inhaltsverzeichnis Schritte zum Erstellen von TCP...

Mysql teilt Zeichenfolge durch gespeicherte Prozedur in Array auf

Um einen String in ein Array aufzuteilen, müssen ...

js implementiert Axios Limit-Anforderungswarteschlange

Inhaltsverzeichnis Der Hintergrund ist: Was wird ...

Detaillierte Erklärung der verfügbaren Umgebungsvariablen in Docker Compose

Mehrere Teile von Compose befassen sich in irgend...

Eintauchen in die JS-Vererbung

Inhaltsverzeichnis Vorwort Vorbereiten Zusammenfa...

So implementieren Sie E-Mail-Benachrichtigungen in Zabbix

Umgesetzt gemäß Online-Tutorial. zabbix3.4, mithi...

Lösungen für das Problem der Tabellenschachtelung und Rahmenzusammenführung

【Frage】 Wenn die äußere und die innere Tabelle ve...

Detaillierte Erläuterung der MySQL-Lösung zur USE DB-Überlastung

Wenn wir auf einen Fehler stoßen, denken wir oft ...

So ändern Sie in Nginx die über http aufgerufene Website in https

Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...

So schreiben Sie ein MySQL-Sicherungsskript

Vorwort: Die Bedeutung einer Datenbanksicherung l...

Zusammenfassung der MySQL-Datenmigration

Inhaltsverzeichnis Vorwort: 1. Über die Datenmigr...