Heim > Web-Frontend > js-Tutorial > Was sind die Unterschiede zwischen let- und var-definierten Variablen in js?

Was sind die Unterschiede zwischen let- und var-definierten Variablen in js?

亚连
Freigeben: 2018-06-06 17:50:40
Original
2215 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich den Unterschied zwischen let- und var-definierten Variablen in js vor. Er ist sehr gut und hat einen Referenzwert.

Strikter Javascript-Modus

Dies ist das erste Mal, dass ich auf das Schlüsselwort „let“ stoße. Ein Konzept, auf das man besonders achten muss, ist „Javascript Strict Mode“. Code ausgeführt wird, wird ein Fehler gemeldet:

let hello = 'hello world.';
console.log(hello);
Nach dem Login kopieren

Die Fehlermeldung lautet wie folgt:

let hello = 'hello world.';
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
 ...
Nach dem Login kopieren

Die Lösung besteht darin, die Anweisung „Javascript Strict Mode“ in den Dateikopf einzufügen:

'use strict';
let hello = 'hello world.';
console.log(hello);
Nach dem Login kopieren

Ähnlichkeiten und Unterschiede zwischen let- und var-Schlüsselwörtern

Nach der Deklaration wird kein Wert zugewiesen, das Verhalten ist das gleiche

'use strict';
(function() {
 var varTest;
 let letTest;
 console.log(varTest); //输出undefined
 console.log(letTest); //输出undefined
}());
Nach dem Login kopieren

Verwenden Bei nicht deklarierten Variablen ist das Verhalten anders:

(function() {
 console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行)
 console.log(letTest); //直接报错:ReferenceError: letTest is not defined
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
}());
Nach dem Login kopieren

Wenn dieselbe Variable wiederholt deklariert wird, ist das Verhalten anders:

'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
 var varTest = 'varTest changed.';
 let letTest = 'letTest changed.'; //直接报错:SyntaxError: Identifier 'letTest' has already been declared
 console.log(varTest); //输出varTest changed.(注意要注释掉上面letTest变量的重复声明才能运行)
 console.log(letTest);
}());
Nach dem Login kopieren

Variablenbereich, unterschiedliche Leistung

'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
 {
 var varTest = 'varTest changed.';
 let letTest = 'letTest changed.';
 }
 console.log(varTest); //输出"varTest changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明
 console.log(letTest); //输出"test let OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量
}());
Nach dem Login kopieren

Das Obige ist Was ich für alle zusammengestellt habe, hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Detaillierte Erläuterung der Einführung der elementUI-Komponente im Vue-Projekt

Wie man sie als separate Seiteneinstellung implementiert in Vue-cli Hintergrundfarbe

Aktualisierung und Tab-Wechsel in Vue

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen let- und var-definierten Variablen in js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
js
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage