Beispielerklärung zum Umfang und Funktionsabschluss in js
In diesem Artikel werden hauptsächlich Beispiele für den Bereich und den Funktionsabschluss in js vorgestellt. Der Bereich ist sehr einfach, nur ein einfacher Klick. Der Bereich von js hat keinen Gültigkeitsbereich auf Blockebene, sondern nur einen globalen Bereich und einen Funktionsbereich 🎜>
Zum Beispiel:if(true){ var a=100; } console.log(a);
<🎜 entspricht >
var a; if(true){ a=100; }
Sonderfall:
Das a hier kann auch erhalten werden, wenn die Variable direkt ohne var innerhalb der Funktion deklariert wird, wird der übergeordnete Bereich auch als Bereich betrachtet, jedoch nicht Es wird empfohlen, so zu schreiben. Im Allgemeinen müssen Sie die Definition deklarieren.function Loga(){ a=100 } console.log(a);
Das wörtliche Verständnis des Funktionsbereichs besteht darin, dass innerhalb der Funktion definierte Variablen innerhalb der Funktion funktionieren.
Der Unterschied zwischen Funktionsbereich und globalem Bereich besteht darin, dass der globale Bereich innerhalb des Funktionsbereichs aufgerufen werden kann Variablen im Bereich und ändern Sie sie, aber der globale Bereich kann keine im Funktionsbereich definierten Variablen aufrufen. Die Definition hier ist sehr wichtig (unabhängig davon, ob sie geändert wird). Dies bedeutet, dass Variablen auf Variablen im übergeordneten Bereich zugreifen können Der Umfang wiederum ist für den Laien von innen nach außen zugänglich, aber nicht von außen nach innen.
2. Schließung
Es gibt keine genaue Definition des Konzepts der Schließung.
a. Funktion als Rückgabewert
b. Funktionen werden als Parameter übergebenBeispiel:function F1(){ var a=100 return function(){ console.log(a);//a是自由变量 } } var a=200; var f=F1(); f();
Das Ergebnis ist offensichtlich das gleiche wie oben. Die Ausführungsumgebung ist F2, aber die Generierungsumgebung ist F1 und der übergeordnete Bereich ist F1, daher ist die Ausgabe immer noch 100.
function F1(){ var a=100 return function(){ console.log(a); } } var a=200; var f=F1(); function F2(fn){ var a=300; fn(); } F2(f);
Verwandte Empfehlungen:
Scope-Kette und Prototyp-Kette und prototypische Vererbung in js
JS-Bereichskette und Abschluss Paketinstanzfreigabe
Detaillierte Erläuterung des JavaScript-Bereichs und -Abschlusses
Das obige ist der detaillierte Inhalt vonBeispielerklärung zum Umfang und Funktionsabschluss in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



typedef struct wird in der C-Sprache zum Erstellen von Strukturtypaliasen verwendet, um die Verwendung von Strukturen zu vereinfachen. Es weist einem neuen Datentyp ein Alias auf eine vorhandene Struktur zu, indem es den Strukturalias angibt. Zu den Vorteilen gehören verbesserte Lesbarkeit, Wiederverwendung von Code und Typprüfung. Hinweis: Die Struktur muss vor der Verwendung eines Alias definiert werden. Der Alias muss im Programm eindeutig sein und nur innerhalb des Bereichs gültig sein, in dem er deklariert ist.

Variablenerwartungsausnahmen in Java können gelöst werden durch: Initialisierung von Variablen; Verwendung von Nullwerten; Verwendung von Überprüfungen und Zuweisungen;

Zu den Vorteilen von JavaScript-Abschlüssen gehören die Aufrechterhaltung des variablen Bereichs, die Aktivierung von modularem Code, die verzögerte Ausführung und die Ereignisbehandlung. Zu den Nachteilen zählen Speicherverluste, erhöhte Komplexität, Leistungsaufwand und Auswirkungen der Bereichskette.

Die Präprozessoranweisung #include in C++ fügt den Inhalt einer externen Quelldatei in die aktuelle Quelldatei ein und kopiert ihren Inhalt an die entsprechende Stelle in der aktuellen Quelldatei. Wird hauptsächlich zum Einschließen von Header-Dateien verwendet, die im Code benötigte Deklarationen enthalten, z. B. #include <iostream>, um Standard-Eingabe-/Ausgabefunktionen einzubinden.

Lebenszyklus von C++-Smartpointern: Erstellung: Smartpointer werden erstellt, wenn Speicher zugewiesen wird. Eigentumsübertragung: Übertragen Sie das Eigentum durch einen Umzugsvorgang. Freigabe: Speicher wird freigegeben, wenn ein Smart Pointer den Gültigkeitsbereich verlässt oder explizit freigegeben wird. Objektzerstörung: Wenn das Objekt, auf das gezeigt wird, zerstört wird, wird der intelligente Zeiger zu einem ungültigen Zeiger.

Dürfen. C++ erlaubt verschachtelte Funktionsdefinitionen und Aufrufe. Externe Funktionen können integrierte Funktionen definieren und interne Funktionen können direkt innerhalb des Bereichs aufgerufen werden. Verschachtelte Funktionen verbessern die Kapselung, Wiederverwendbarkeit und Bereichskontrolle. Interne Funktionen können jedoch nicht direkt auf lokale Variablen externer Funktionen zugreifen, und der Rückgabewerttyp muss mit der Deklaration der externen Funktion übereinstimmen. Interne Funktionen können nicht selbstrekursiv sein.

In Vue gibt es beim Deklarieren von Variablen zwischen let und var einen Unterschied im Gültigkeitsbereich: Gültigkeitsbereich: var hat einen globalen Gültigkeitsbereich und let hat einen Gültigkeitsbereich auf Blockebene. Bereich auf Blockebene: var erstellt keinen Bereich auf Blockebene, let erstellt einen Bereich auf Blockebene. Neudeklaration: var ermöglicht die Neudeklaration von Variablen im gleichen Bereich, let jedoch nicht.

Zu den Zeigertypen gehören in JavaScript: 1. Globales Objekt; 3. Konstruktoraufruf; 5. Pfeilfunktion (erbt dies); Darüber hinaus können Sie mit den Methoden bind(), call() und apply() explizit festlegen, worauf dies hinweist.
