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 /* * 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? 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 Fall 1: wenn (wahr) { Funktion f() {} } Fall 2: versuchen { Funktion f() {} } Fang(e) { // ... } Die beiden oben genannten Funktionsdeklarationen sind laut { 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 Das könnte Sie auch interessieren:
|
<<: Lösung zur Definition der Mindestspannweite hat keine Auswirkung
Die Gesamtarchitektur von NGINX ist durch eine Re...
Grundlegende Analyse des IMG-Tags: In HTML5 beste...
Inhaltsverzeichnis Schritte zum Erstellen von TCP...
Um einen String in ein Array aufzuteilen, müssen ...
Einfügen von Daten in Tabellennamen (Spaltenname ...
Inhaltsverzeichnis Der Hintergrund ist: Was wird ...
Mehrere Teile von Compose befassen sich in irgend...
Inhaltsverzeichnis Vorwort Vorbereiten Zusammenfa...
Umgesetzt gemäß Online-Tutorial. zabbix3.4, mithi...
【Frage】 Wenn die äußere und die innere Tabelle ve...
Wenn wir auf einen Fehler stoßen, denken wir oft ...
Ein Datensatz eines Online-MySQL-Transaktionsprob...
Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...
Vorwort: Die Bedeutung einer Datenbanksicherung l...
Inhaltsverzeichnis Vorwort: 1. Über die Datenmigr...