Vorwort: 1. Bereiche werden in verschiedenen Formen ausgedrücktvar ist Funktionsumfang, let ist Blockumfang { var Affe = "Xun Wukong"; let pig='Schweinekotelett-Abdeckung'; } console.log(monkey); //Ausgabe undefiniert console.log(pig); //Fehler: Pig ist nicht definiert Wie aus dem obigen Code ersichtlich ist, sind mit 2. Der Unterschied zwischen variabler Promotion und Nicht-PromotionMit var deklarierte Variablen werden angehoben, mit let deklarierte Variablen werden jedoch nicht angehoben. console.log(Affe); //undefiniert var Affe = "Xun Wukong"; console.log(pig); //Fehler: Pig ist nicht definiert let pig='Schweinekotelett-Abdeckung'; Warum wird nach derselben Logik eine mit var deklarierte Variable als undefiniert angezeigt, wenn sie vor ihrer Deklaration aufgerufen wird, während eine mit let deklarierte Variable eine Ausnahme auslöst, wenn sie vor ihrer Deklaration aufgerufen wird? Dies ist der Unterschied zwischen den beiden bei der Variablenpromotion. Mit var deklarierte Variablen haben eine Variablenpromotion, während dies bei mit let deklarierten Variablen nicht der Fall ist. Was ist also variable Promotion? Ich werde hier keine konzeptionelle Beschreibung geben. Ich werde nur mein persönliches Verständnis davon äußern, dass der obige Code tatsächlich dem Folgenden entspricht: var Affe; console.log(Affe); //undefiniert Affe = „Xun Wukong“; console.log(pig); //Fehler: Pig ist nicht definiert let pig='Schweinekotelett-Abdeckung'; Sehen Sie den Unterschied? Die mit var deklarierte Variable wird zur Definition an den Anfang des Gültigkeitsbereichs extrahiert, aber es wird kein Wert zugewiesen. Die Zuweisungsoperation befindet sich noch in Ihrem Code. Wenn Sie also die mit 3. Unterschiede bei temporären toten ZonenTemporäre Totzone: Wenn eine Variable in einen Bereich aufgenommen wird und es im äußeren Bereich eine Variable mit demselben Namen gibt, hat dies keine Auswirkungen auf den äußeren Bereich, selbst wenn die Variable im Bereich geändert wird. Die spezifischen Leistungen sind wie folgt: für(var i=0;i<5;i++){ setzeTimeout(Funktion(){ Konsole.log(i) },1000) } für (lass i = 0; i < 5; i++) { setzeTimeout(Funktion(){ Konsole.log(i) },1000) } Was sind die Ergebnisse der Ausführung dieser beiden Codes? Das Ergebnis des ersten Codes ist, dass nach 1 Sekunde 5 5er nacheinander gedruckt werden. Das Ergebnis des zweiten Codes ist, dass nach 1 Sekunde 0, 1, 2, 3, 4 nacheinander gedruckt werden. Warum besteht dieser Unterschied? Da die Variable i im ersten Code durch das Schlüsselwort var deklariert wird, gibt es keine kritische Totzone, d. h. die Variable i, auf die Sie in Die Variable i im zweiten Code wird durch das Schlüsselwort let deklariert, wodurch eine kritische Totzone entsteht. Die Variable i in 4. Im selben Kontext kann var wiederholt deklariert werden, let jedoch nichtlass monkey='Xun Wukong'; let monkey = '逼马吻'; //Fehler: Bezeichner 'a' wurde bereits deklariert var pig = 'Schweinekotelett-Abdeckung'; var pig = 'pig anal fissure'; //Normaler Zugriff, der Wert der Variable pig wird ersetzt Dies ist das Ende dieses Artikels über den Unterschied zwischen var und let in JavaScript. Weitere Informationen zu var und let in JavaScript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: So finden und löschen Sie doppelte Zeilen in MySQL
>>: Beispielcode zum Zeichnen von Doppelpfeilen in gängigen CSS-Stilen
Inhaltsverzeichnis Einführung Synchron Asynchron ...
01. Befehlsübersicht dirname - entfernt nicht zu ...
Es gibt häufig Szenarien, in denen das Bild an di...
Ich habe das System vor einiger Zeit neu installi...
Lernen wir verschiedene Arten von Schleifen kenne...
Wenn Sie 5 Datensätze in Tabelle1 einfügen möchte...
Wenn wir die Verschachtelungsregeln grundlegender...
1. Paradigma Der englische Name des Paradigmas la...
Verstehe das Vielleicht haben Sie this in anderen...
1. Umweltanforderungen 1. Docker 17 und höher wur...
Inhaltsverzeichnis Vorwort Rendern setTable-Kompo...
Inhaltsverzeichnis Vorwort Umsetzungsideen Implem...
Spezifische Methode: Öffnen Sie zuerst die Eingab...
Starten Sie MySQL zunächst im Skip-Grant-Tables-M...
1: Unterschiede bei Geschwindigkeit und Lademethod...