Heim Web-Frontend js-Tutorial Detaillierte Analyse der Variablendeklaration und Funktionsdeklarationsförderung in js (mit Beispielen)

Detaillierte Analyse der Variablendeklaration und Funktionsdeklarationsförderung in js (mit Beispielen)

Aug 23, 2018 pm 02:16 PM
函数声明 变量声明

Dieser Artikel bietet Ihnen eine detaillierte Analyse der Variablendeklarationen und Funktionsdeklarationen in js (mit Beispielen). Ich hoffe, dass er für Sie hilfreich ist. .

Verbesserung der Variablendeklaration
1. Variablendefinition
Sie können var zum Definieren von Variablen verwenden. Wenn der Variablen kein Wert zugewiesen ist, ist der Anfangswert der Variablen undefiniert .

2. Variablenbereich
Variablenbereich bezieht sich auf den Bereich, in dem die Variable arbeitet. Variablen werden in globale Variablen und lokale Variablen unterteilt. Globale Variablen werden global definiert; lokale Variablen sind nur innerhalb einer Funktion gültig.
Im Funktionskörper haben lokale Variablen oder Parameter mit demselben Namen eine höhere Priorität als globale Variablen. Das heißt, wenn in der Funktion lokale Variablen oder Parameter mit demselben Namen wie die globalen Variablen vorhanden sind, werden die globalen Variablen durch die lokalen Variablen überschrieben.
Alle nicht mit var definierten Variablen gelten als globale Variablen

3. Funktionsumfang und Deklaration im Voraus
Die Funktionsrolle von JavaScript bezieht sich auf alle innerhalb der Funktionsvariablen deklarierten Variablen werden immer im Funktionskörper definiert, was bedeutet, dass die Variablen verfügbar sind, bevor sie deklariert werden. Dies bedeutet, dass alle Deklarationen in JavaScript-Funktionen (nur Deklarationen, aber keine Zuweisungen) an den Anfang der Funktion verschoben werden Funktionskörper, wobei die Variablenzuweisungsoperationen dort bleiben, wo sie waren. Nehmen Sie das folgende Beispiel:
Hinweis: Die Vorabdeklaration wird während der Vorkompilierung der JavaScript-Engine durchgeführt, bevor der Code ausgeführt wird.

var scope = 'global';function f(){
    console.log(scope);    
    var scope = 'local';
    console.log(scope);
}
Nach dem Login kopieren

Aufgrund der Deklarationsförderung innerhalb der Funktion sieht der obige Code tatsächlich so aus

var scope = 'global';function f(){
    var scope;    //变量声明提升到函数顶部
    console.log(scope);
    scope = 'local';    //变量初始化依然保留在原来的位置
    console.log(scope);
}
Nach dem Login kopieren

Nach einer solchen Transformation ist die Antwort sehr offensichtlich. Da der Bereich vor der ersten console.log(scope)-Anweisung definiert, aber kein Wert zugewiesen wurde, ist die Referenz des Bereichs zu diesem Zeitpunkt undefiniert. Vor der zweiten console.log(scope)-Anweisung wurde dem Bereich ein zugewiesen Wert von 'local', daher ist das Ausgabeergebnis lokal.

Funktionsdeklarationsförderung
Funktionsdeklarationssyntax

f('superman');function f(name){
    console.log(name);
}
Nach dem Login kopieren

Funktionsausdruckssyntax

f('superman');var f= function(name){
    console.log(name);
}
Nach dem Login kopieren

Das Ausführen des obigen Codes führt zum Fehler Uncaught ReferenceError: f ist nicht definiert(...), die Fehlermeldung zeigt, dass f nicht definiert ist.
Warum gibt es Unterschiede zwischen Funktionsdeklarationen und Funktionsausdrücken im selben Code?
Dies liegt daran, dass die Funktionsdeklaration über eine sehr wichtige Funktion verfügt: das Heben der Funktionsdeklaration. Die Funktionsdeklarationsanweisung wird an die Spitze des externen Skripts oder des externen Funktionsbereichs gehoben (ist sie dem Heben von Variablen sehr ähnlich)? Genau aufgrund dieser Funktion kann die Funktionsdeklaration nach der Anweisung platziert werden, die sie aufruft. Wie im folgenden Beispiel sollte die Endausgabe aussehen? :

var getName = function(){
    console.log(2);
}function getName (){
    console.log(1);
}
getName();
Nach dem Login kopieren

Manche Leute denken vielleicht, dass das endgültige Ausgabeergebnis 1 ist. Lassen Sie es uns analysieren. In diesem Beispiel geht es um die Förderung von Variablendeklarationen und Funktionsdeklarationen. Wie bereits erwähnt, wird die Funktionsdeklarations-Promotionsfunktion getName(){} nach oben verschoben. Der Funktionsausdruck var getName = function(){} zeigt die Heraufstufung der Variablendeklaration. In diesem Fall ist getName also auch eine Variable, sodass die Deklaration dieser Variablen ebenfalls nach unten verschoben wird, während die Zuweisung der Variablen weiterhin an der ursprünglichen Position verbleibt. Es ist zu beachten, dass Funktionen Vorrang haben. Obwohl sowohl Funktionsdeklarationen als auch Variablendeklarationen hochgestuft werden, werden zuerst Funktionen und dann Variablen hochgestuft. Daher kann die obige Funktion wie folgt umgewandelt werden:

function getName(){    //函数声明提升到顶部
    console.log(1);
}
var getName;    //变量声明提升
getName = function(){    //变量赋值依然保留在原来的位置
    console.log(2);
}
getName();    // 最终输出:2
Nach dem Login kopieren

Die endgültige Ausgabe lautet also: 2. Obwohl im ursprünglichen Beispiel die Funktionsdeklaration nach dem Funktionsausdruck steht, wird getName später durch die Zuweisungsoperation des Funktionsausdrucks überschrieben, da die Funktionsdeklaration nach oben verschoben wird, sodass 2 ausgegeben wird.

Verwandte Empfehlungen:



Das obige ist der detaillierte Inhalt vonDetaillierte Analyse der Variablendeklaration und Funktionsdeklarationsförderung in js (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Standardparameter in C++-Funktionsdeklarationen: eine umfassende Analyse ihrer Deklaration und Verwendung Standardparameter in C++-Funktionsdeklarationen: eine umfassende Analyse ihrer Deklaration und Verwendung May 02, 2024 pm 03:09 PM

Standardparameter in C++ bieten die Möglichkeit, Standardwerte für Funktionsparameter anzugeben und so die Lesbarkeit, Einfachheit und Flexibilität des Codes zu verbessern. Standardparameter deklarieren: Fügen Sie nach dem Parameter in der Funktionsdeklaration das Symbol „=“ hinzu, gefolgt vom Standardwert. Verwendung: Wenn die Funktion aufgerufen wird und keine optionalen Parameter bereitgestellt werden, werden die Standardwerte verwendet. Praktischer Fall: Eine Funktion, die die Summe zweier Zahlen berechnet. Ein Parameter ist erforderlich, der andere ist optional und hat den Standardwert 0. Vorteile: Verbesserte Lesbarkeit, erhöhte Flexibilität, reduzierter Boilerplate-Code. Hinweis: Es kann nur in der Deklaration angegeben werden, es muss am Ende stehen und die Typen müssen kompatibel sein.

Welchen Einfluss hat die Reihenfolge der Deklaration und Definition von C++-Funktionen? Welchen Einfluss hat die Reihenfolge der Deklaration und Definition von C++-Funktionen? Apr 19, 2024 pm 01:42 PM

In C++ wirkt sich die Reihenfolge der Funktionsdeklarationen und -definitionen auf den Kompilierungs- und Verknüpfungsprozess aus. Am gebräuchlichsten ist die Deklaration zuerst und die Definition danach; Sie können auch „forwarddeclaration“ verwenden, um die Definition vor der Deklaration zu platzieren. Wenn beide gleichzeitig vorhanden sind, ignoriert der Compiler die Deklaration und verwendet nur die Definition.

Lösen Sie das Problem „Fehler: Verwendung einer nicht deklarierten Bezeichnervariable' im C++-Code Lösen Sie das Problem „Fehler: Verwendung einer nicht deklarierten Bezeichnervariable' im C++-Code Aug 26, 2023 pm 01:46 PM

Lösen des „error:useofundeclaredidentifier'variable'“-Problems in C++-Code Beim Programmieren in C++ stoßen wir häufig auf verschiedene Fehler. Einer der häufigsten Fehler ist „error:useofundeclaredidentifier'variable‘“. Dieser Fehler bedeutet normalerweise, dass wir in unserem Code eine nicht deklarierte Variable verwenden. In diesem Artikel werden Einzelheiten erläutert

Was ist der Unterschied zwischen C++-Funktionsdeklaration und -definition? Was ist der Unterschied zwischen C++-Funktionsdeklaration und -definition? Apr 18, 2024 pm 04:03 PM

Eine Funktionsdeklaration informiert den Compiler über die Existenz der Funktion und enthält nicht die Implementierung, die zur Typprüfung verwendet wird. Die Funktionsdefinition stellt die eigentliche Implementierung einschließlich des Funktionskörpers bereit. Zu den wichtigsten Unterscheidungsmerkmalen gehören: Zweck, Ort, Rolle. Das Verständnis der Unterschiede ist entscheidend für das Schreiben von effizientem und wartbarem C++-Code.

C++-Funktionsdeklarationen und -Definitionen C++-Funktionsdeklarationen und -Definitionen Apr 11, 2024 pm 01:27 PM

Funktionsdeklaration und -definition sind in C++ erforderlich. Die Funktionsdeklaration gibt den Rückgabetyp, den Namen und die Parameter der Funktion an, während die Funktionsdefinition den Funktionskörper und die Implementierung enthält. Deklarieren Sie zunächst die Funktion und verwenden Sie sie dann in Ihrem Programm unter Übergabe der erforderlichen Parameter. Verwenden Sie die Return-Anweisung, um einen Wert von einer Funktion zurückzugeben.

C++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen? C++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen? Aug 22, 2023 pm 12:39 PM

C++-Kompilierungsfehler: Funktionsaufruf stimmt nicht mit Funktionsdeklaration überein, wie kann man ihn lösen? Bei der Entwicklung von C++-Programmen treten zwangsläufig einige Kompilierungsfehler auf. Einer der häufigsten Fehler besteht darin, dass der Funktionsaufruf nicht mit der Funktionsdeklaration übereinstimmt. Diese Art von Fehler kommt unter C++-Programmierern häufig vor, da sie nicht auf die Korrektheit der Funktionsdeklaration achten und zu Kompilierungsproblemen führen, was letztendlich Zeit und Energie zur Behebung des Problems verschwendet und die Entwicklungseffizienz beeinträchtigt. Um diesen Fehler zu vermeiden, müssen einige Normen und Standardpraktiken befolgt werden. Schauen wir uns diese unten an. Was ist ein Funktionsaufruf im Vergleich zu einer Funktionsdeklaration?

[[nodiscard]] in C++-Funktionsdeklarationen: Entmystifizierung der Folgen des Ignorierens von Rückgabewerten [[nodiscard]] in C++-Funktionsdeklarationen: Entmystifizierung der Folgen des Ignorierens von Rückgabewerten May 01, 2024 pm 06:18 PM

Das Attribut [[nodiscard]] gibt an, dass der Rückgabewert der Funktion nicht ignoriert werden darf. Andernfalls wird eine Compilerwarnung oder ein Compilerfehler ausgegeben, um die folgenden Konsequenzen zu verhindern: nicht initialisierte Ausnahmen, Speicherverluste und falsche Berechnungsergebnisse.

So verwenden Sie Variablen in PHP So verwenden Sie Variablen in PHP May 20, 2023 pm 02:33 PM

PHP ist eine sehr beliebte Webentwicklungssprache, die es Entwicklern ermöglicht, dynamische Webanwendungen auf der Serverseite zu erstellen. In PHP ist eine Variable eine grundlegende Datenstruktur, die zum Speichern von Werten und Daten verwendet wird. In diesem Artikel wird die Verwendung von Variablen in PHP vorgestellt. Grundlegende Syntax von Variablen Die Syntax zum Deklarieren von Variablen in PHP ist sehr einfach. Variablennamen beginnen mit einem Dollarzeichen ($), gefolgt vom Variablennamen. Variablennamen können eine Kombination aus Buchstaben, Zahlen oder Unterstrichen sein, sie müssen jedoch mit einem Buchstaben oder einem Unterstrich beginnen. Der folgende Code deklariert beispielsweise einen Namen

See all articles