Sabemos que let
es una palabra clave reservada que define una variable en JavaScript.
var let = 2;
console.log(let); // return 2
Entonces, ¿por qué esto no es un error?
javascript
MD Tahazzot
fuente
fuente
Respuestas:
let
es solo una palabra reservada en modo estricto:Esto se debe a que los navegadores generalmente priorizan la compatibilidad con versiones anteriores por encima de todo. Aunque
let
se introdujo en ES2015 (y su uso se previó en algún momento antes), los scripts anteriores que se usabanlet
como nombre de variable continuarían funcionando según lo deseado. Por ejemplo, si su guión fue escrito en 2008:Entonces continuaría funcionando en 2020 también.
Por razones muy similares,
async
yawait
también se permiten como nombres de variables .En cuanto a por qué el uso de
let
errores en modo estricto: el modo estricto se introdujo en ES5, en 2009. En aquel entonces, los diseñadores de lenguaje vieron que el uso de nuevas palabras clave para declarar variables era una posibilidad en el futuro, pero no lo era. Todavía no está escrito en piedra, y ES6 todavía estaba muy lejos. Una vez que salió ES5, los escritores de guiones podían optar por el modo estricto para que el código fuera menos confuso y cambiar los errores silenciosos por errores explícitos. Aunque todavíalet
no era utilizable para la declaración de variables , prohibirlo como un nombre de variable en modo estricto mejoró la legibilidad de los scripts futuros que optaron por el modo estricto, sin romper los scripts existentes.fuente
let
y algunas de las otras obras actúan como palabras reservadas solo en modo estricto. Las especificaciones dicenPuede ver
let
dentro de la lista de palabras que solo están prohibidas en modo estricto. Si desea arrojar un error por usarlet
como nombre de variable, puede usar el modo estrictofuente
'uso estricto';
Dará un error. use herramientas de paquete como webpack, gruñido para compilar su código.
fuente