Was bedeutet Javascript-Variablenwerbung?
In JavaScript bedeutet Variablenheraufstufung, dass innerhalb des Gültigkeitsbereichs einer Variablen, unabhängig davon, wo die Variable deklariert ist, sie an die Spitze des Gültigkeitsbereichs heraufgestuft wird, die Reihenfolge der Variableninitialisierung jedoch unverändert bleibt. Die eigentliche Implementierung des Variablenhebens besteht darin, dass JavaScript-Variablen- und Funktionsdeklarationen während der Kompilierungsphase im Speicher abgelegt werden.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Was ist Variable Boosting?
Variables Heben (Hoisting) ist das Verständnis der Leute dafür, wie der JavaScript-Ausführungskontext funktioniert, und es handelt sich nicht um eine offizielle Änderung.
Variablenförderung bedeutet im wahrsten Sinne des Wortes, dass die Deklaration von Variablen und Funktionen in der physischen Ebene an den Anfang des Gültigkeitsbereichs verschoben wird. Obwohl dieses Verständnis nicht korrekt ist, ist der Effekt derselbe.
Laienhaft ausgedrückt bedeutet Variablenheraufstufung, dass innerhalb des Gültigkeitsbereichs einer Variablen, unabhängig davon, wo die Variable deklariert ist, sie an die Spitze des Gültigkeitsbereichs heraufgestuft wird, die Reihenfolge der Variableninitialisierung jedoch unverändert bleibt.
Die eigentliche Implementierung der Variablenförderung besteht darin, dass die Deklaration von JavaScript-Variablen und -Funktionen während der Kompilierungsphase im Speicher abgelegt wird. Dies bedeutet, dass Benutzer eine Funktion oder Variable verwenden können, bevor sie offiziell deklariert wird.
Um die Implementierung der Variablenförderung zu verstehen, müssen wir zunächst die folgenden zwei Punkte klären:
Javascript-Code wird nicht Zeile für Zeile ausgeführt.
-
Die Ausführung von Javascript ist in zwei Schritte unterteilt:
Kompilierung ( lexikalische Erklärung/Vorinterpretation)
Ausführung
Variablenförderung hilft beim Verständnis
console.log(a); var a = 'ghostwu';
Für das obige Codebeispiel, die erste Codezeile, denken Sie vielleicht, dass ein Fehler gemeldet wird, weil vorher a wird ausgegeben. Die a-Variable ist nicht definiert, aber das korrekte Ergebnis ist undefiniert. Gemäß der obigen Erklärung des js-Ausführungscodes in Kombination mit dem eigentlichen Code betrachtet js diesen Satz tatsächlich als zwei Stufen, wenn wir auf var a = „ghostwu“ zum Definieren einer Variablen stoßen: var a tritt in der Kompilierungsphase auf, a = „ghostwu“ tritt in der Ausführungsphase auf. Dann wird var a an den Anfang des aktuellen Bereichs befördert, a = „ghostwu“ bleibt an Ort und Stelle und wartet auf die Ausführungsphase. Schauen Sie sich also den folgenden Fall an:
a = 'ghostwu'; var a; console.log( a ); //上面这段代码经过编译之后,变成下面这样 var a; //被提升到当前作用域的最前面 a = 'ghostwu'; //留在原地,等待执行 console.log( a ); //输出ghostwu console.log( a ); var a = 'ghostwu'; //上面这段代码,经过编译之后,变成下面这样 var a; console.log( a );//输出undefined,而不会报错 a = 'ghostwu';
Funktion Deklarationsförderung
Bevor wir die Funktionsdeklarationsförderung erklären, wollen wir zunächst die beiden gängigen Methoden zum Definieren von Funktionen verstehen
//函数声明, 形如: function show(){ console.log( '函数声明方式' ); } //函数表达式, 形如: var show = function(){ console.log( '表达式方式' ); }
Da Funktionsausdrücke und Funktionsdeklarationen während der Kompilierungsphase unterschiedliche Interpretationseffekte erzeugen, werden die Funktionen Die Anweisung wird heraufgestuft. Ein Beispiel finden Sie im folgenden Code:
show(); function show(){ console.log( a ); var a = 'ghostwu'; } //函数声明会被提升,所以上面的代码经过编译之后,就变成下面这样 function show(){ //函数声明被提升到 当前作用域的最前面 var a; //var声明被提升到当前作用域的最前面, 注意,他不会提升到函数的外面, 因为当前的作用域是在函数中 console.log( a ); a = 'ghostwu'; } show();//输出undefined
Aber der Funktionsausdruck wird nicht hochgestuft. Siehe das folgende Beispiel:
show(); //报错,show is not a function var show = function(){ console.log( 'ghostwu' ); } //对于上面这段表达式代码,经过编译之后: var show; show(); //执行之后就是 undefined(), 所以在表达式定义之前,调用函数报错了 show = function(){ console.log( 'ghostwu' ); }
Aber sehen Sie sich den folgenden Fall an:
show(); //你好 var show; function show(){ console.log( '你好' ); } show = function(){ console.log( 'hello' ); }
Warum gibt der obige Code „Hallo“ aus?“ Wenn eine Funktionsdeklaration oder Variablendeklaration mit demselben Namen erscheint, wird die Funktionsdeklaration zuerst heraufgestuft und die Variablendeklaration ignoriert. Nach der Kompilierung lautet es also:
function show(){ console.log( '你好' ); } show(); //你好 show = function(){ console.log( 'hello' ); } show();//如果这里在调用一次,就是hello, 因为show函数体在执行阶段被重新赋值了
Wenn es jedoch eine Funktionsdeklaration mit demselben Namen gibt, überschreibt diese die vorherige, wie im folgenden Code gezeigt:
show(); //how are you var show; function show(){ console.log( 'hello' ); } show = function(){ console.log( '你好' ); } function show(){ console.log( 'how are you!' ); } //上面的代码经过编译之后,变成如下形式: function show(){ console.log( 'how are you!' ); } show(); //how are you show = function(){ console.log( '你好' ); } show(); //如果在这里再执行一次,结果:你好
Hinweis:
Durch die Variablenförderung wird nur die Deklaration der Variablen verbessert, der Zuweisungswert wird jedoch nicht erhöht.
Da es so etwas wie Variablenförderung gibt, sollten wir bei der Definition von Variablen lieber let statt var verwenden, um die negativen Auswirkungen der Variablenförderung zu vermeiden.
【Verwandte Empfehlungen: Javascript-Lerntutorial】
Das obige ist der detaillierte Inhalt vonWas bedeutet Javascript-Variablenwerbung?. 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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



So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

JavaScript ist eine in der Webentwicklung weit verbreitete Programmiersprache, während WebSocket ein Netzwerkprotokoll für die Echtzeitkommunikation ist. Durch die Kombination der leistungsstarken Funktionen beider können wir ein effizientes Echtzeit-Bildverarbeitungssystem erstellen. In diesem Artikel wird erläutert, wie dieses System mithilfe von JavaScript und WebSocket implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die Anforderungen und Ziele des Echtzeit-Bildverarbeitungssystems klären. Angenommen, wir haben ein Kameragerät, das Bilddaten in Echtzeit sammeln kann
