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

Methoden zum Defragmentieren und Freigeben von Speicherplatz in MySQL-Tabellen

Inhaltsverzeichnis Ursachen der MySQL-Tabellenfra...

Konzept und Anwendungsbeispiele für die MySQL-Indexkardinalität

Dieser Artikel erläutert anhand von Beispielen da...

Detaillierte Erklärung der Verwendung des Linux-Befehls „tee“

Der Befehl tee wird hauptsächlich verwendet, um d...

Ubuntu führt regelmäßig Beispielcode eines Python-Skripts aus

Originallink: https://vien.tech/article/157 Vorwo...

Detaillierte Erläuterung des CocosCreator-Projektstrukturmechanismus

Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...

vue3+ts+EsLint+Prettier Standardcode-Implementierung

Inhaltsverzeichnis verwenden Verwendung von EsLin...

Konfigurationsprozess für die MySQL-Master-Slave-Replikation

Konfiguration der Hauptbibliothek 1. Konfiguriere...

Zusammenfassung der 16 XHTML1.0- und HTML-Kompatibilitätsrichtlinien

1. Vermeiden Sie es, die Seite als XML-Typ zu dek...

Detaillierte Erklärung zum Abrufen der IP-Adresse eines Docker-Containers

1. Nach dem Betreten des Containers Katze /etc/ho...

Detaillierte Erklärung generischer Fälle in TypeScript

Definition von Generika // Anforderung 1: Generik...

Detaillierte Erklärung der MySQL EXPLAIN-Ausgabespalten

1. Einleitung Die EXPLAIN-Anweisung liefert Infor...