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
1. Gehen Sie zur offiziellen Website, um das Inst...
Heutzutage gehört die Unterstützung von HTTPS für...
Inhaltsverzeichnis 1. Problem 2. Lösung 2.1 Pagin...
Inhaltsverzeichnis Vorbemerkungen Reproduktion de...
In diesem Artikelbeispiel wird der spezifische Co...
Aus beruflichen Gründen ist es oft nicht möglich,...
Inhaltsverzeichnis 1. Implementieren Sie die Komp...
MySQL ist eine leistungsstarke Open-Source-Datenb...
MySQL-Version: MySQL Community Edition (GPL) ----...
1Mehrere gängige Zeichensätze Zu den gängigsten Z...
Beginnen wir mit einer Frage Als ich vor fünf Jah...
Einführung: Nginx (die Aussprache ist gleichbedeu...
In diesem Artikel werden die Installationsschritt...
Schritt: 1. Erstellen Sie eine neue Datei docker-...
Ich habe erst vor ein paar Tagen mit der Arbeit b...