Nous savons que let
c'est un mot-clé réservé qui définit une variable en JavaScript.
var let = 2;
console.log(let); // return 2
Alors pourquoi ce n'est pas une erreur?
javascript
Md. Tahazzot
la source
la source
Réponses:
let
n'est qu'un mot réservé en mode strict:En effet, les navigateurs privilégient généralement la compatibilité descendante avant tout. Bien qu'il ait
let
été introduit dans ES2015 (et que son utilisation ait été prévue avant cette date), les scripts antérieurs qui étaient utiliséslet
comme nom de variable continueraient de fonctionner comme souhaité. Par exemple, si votre script a été écrit en 2008:Ensuite, il continuerait de fonctionner en 2020 également.
Pour des raisons très similaires,
async
etawait
sont également autorisés en tant que noms de variables .Quant à savoir pourquoi l'utilisation d'
let
erreurs en mode strict - le mode strict a été introduite dans ES5, en 2009. À l'époque, les concepteurs de langage ont vu que l'utilisation de nouveaux mots clés pour déclarer des variables était une possibilité à l'avenir, mais ce n'était pas le cas. pas encore gravé dans la pierre, et ES6 était encore loin. Une fois ES5 sorti, les rédacteurs de scripts pouvaient opter pour le mode strict pour rendre le code moins confus et changer les erreurs silencieuses en erreurs explicites. Bien quelet
n'était pas utilisable pour la déclaration des variables encore , l' interdiction comme un nom variable en mode strict a amélioré la lisibilité des futurs scripts qui ont opté en mode strict, tout en ne pas casser les scripts existants.la source
let
et certaines des autres œuvres n'agissent comme des mots réservés qu'en mode strict. Les spécifications disentVous pouvez voir
let
à l'intérieur de la liste des mots qui ne sont interdits qu'en mode strict. Si vous voulez lancer une erreur pour utiliserlet
comme nom de variable, vous pouvez utiliser le mode strictla source
«utiliser strictement»;
cela donnera une erreur. utilisez des outils de bundle comme webpack, grunt pour compiler votre code.
la source