Tout d'abord, veuillez noter que let est quelque chose dans ES6, au moins il est compatible avec les navigateurs IE avant IE10, alors soyez prudent ! Eh bien... Voyons ensuite l'utilisation de l'instruction let pour déclarer la portée en JavaScript.
Syntaxe
let variable1 = value1
Paramètresvariable1
Le nom de la variable à déclarer.
value1
La valeur initiale attribuée à la variable.
RemarquesUtilisez l'instruction let pour déclarer une variable dont la portée est limitée au bloc dans lequel elle est déclarée. Vous pouvez attribuer une valeur à une variable lorsque vous la déclarez, ou vous pouvez attribuer une valeur à la variable ultérieurement dans le script.
Les variables déclarées avec let ne peuvent pas être utilisées avant la déclaration, sinon une erreur se produira.
Si votre variable n'est pas initialisée dans une instruction let, la valeur JavaScript non définie lui sera automatiquement attribuée.
Exemple :
var l = 10; { let l = 2; // At this point, l = 2. } // At this point, l = 10. // Additional ways to declare a variable using let. let index; let name = "Thomas Jefferson"; let answer = 42, counter, numpages = 10; let myarray = new Array();
Portée au niveau du bloc
for(var i = 0; i < 10; i++){} console.log(i); //10 for(let j = 0; j < 10; j++){} console.log(j); //"ReferenceError: j is not defined
Aucune promotion variable
console.log(a); // 输出undefined console.log(b); // 报错ReferenceError console.log(c); // 报错ReferenceError var a = 2; let b = 2;
Notez la différence entre undefined et ReferenceError
Temporary Dead Zone (TDZ)Tant que vous entrez dans la portée actuelle au niveau du bloc, les variables utilisées existent déjà, mais avant elles sont déclarés C'est une zone morte et ne peut pas être exploitée.
Remarque : typeof n'est plus une opération sûre à 100 %
typeof x; // ReferenceError typeof y // undefined let x;
Les déclarations en double ne sont pas autorisées
let x = 1; let x; // "SyntaxError: Identifier 'x' has already been declared var y = 2; var y = 3; // y = 3
Portée au niveau du bloc
// 匿名函数写法 (function () { var tmp = ...; ... }()); // 块级作用域写法 { let tmp = ...; ... }
Le mode strict d'ES5 stipule que les fonctions ne peuvent être déclarées que dans la portée de niveau supérieur et dans les déclarations de fonction dans d'autres situations (comme les blocs de code if et les blocs de code de boucle). signalera les erreurs.
// ES5 'use strict'; if (true) { function f() {} // 报错 }
Depuis que ES6 introduit la portée au niveau du bloc, cette situation peut être comprise car la fonction est déclarée dans la portée au niveau du bloc, donc aucune erreur n'est signalée, mais les accolades qui constituent le bloc ne peuvent pas être less
// 报错 'use strict'; if (true) function f() {}
Les variables globales déclarées ne sont plus des attributs de la fenêtre
"use strict"; var a = 1; console.log(window.a) // 1 let b = 1; console.log(window.b) // undefined
Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir. .
Articles connexes :
Compréhension approfondie et utilisation pratique de la fonction javascript (code ci-joint)
Réponses détaillées sur les modules JavaScript
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!