Sabemos que let
é uma palavra-chave reservada que define uma variável em JavaScript.
var let = 2;
console.log(let); // return 2
Então, por que isso não é um erro?
javascript
Md. Tahazzot
fonte
fonte
Respostas:
let
é apenas uma palavra reservada no modo estrito:Isso ocorre porque os navegadores geralmente priorizam a compatibilidade com versões anteriores, acima de tudo. Embora tenha
let
sido introduzido no ES2015 (e seu uso foi previsto antes disso), os scripts anteriores que usavamlet
como nome de variável continuariam a funcionar conforme desejado. Por exemplo, se seu script foi escrito em 2008:Então continuaria a funcionar também em 2020.
Por razões muito semelhantes,
async
eawait
também são permitidos como nomes de variáveis .Quanto ao motivo pelo qual o uso de
let
erros no modo estrito - modo estrito foi introduzido no ES5, em 2009. Naquela época, os designers de linguagem viram que o uso de novas palavras-chave para declarar variáveis era uma possibilidade no futuro, mas não era. ainda está em pedra, e o ES6 ainda estava muito longe. Depois que o ES5 fosse lançado, os criadores de scripts poderiam optar pelo modo estrito para tornar o código menos confuso e alterar erros silenciosos para erros explícitos. Emboralet
não era utilizável para declaração de variável ainda , proibindo-o como um nome de variável no modo estrito melhorou a legibilidade de futuros scripts que optaram em modo estrito, ao mesmo tempo, não quebrar os scripts existentes.fonte
let
e alguns dos outros trabalhos funcionam como palavras reservadas apenas no modo estrito. As especificações dizemVocê pode ver
let
dentro da lista de palavras que não são permitidas apenas no modo estrito. Se você deseja lançar um erro ao usarlet
como nome de variável, pode usar o modo estritofonte
'use strict';
isso dará um erro. use ferramentas de pacote como o webpack, grunt para compilar seu código.
fonte