Мы знаем, что let
это зарезервированное ключевое слово, которое определяет переменную в JavaScript.
var let = 2;
console.log(let); // return 2
Так почему же это не ошибка?
javascript
Md. Tahazzot
источник
источник
Ответы:
let
только зарезервированное слово в строгом режиме:Это связано с тем, что браузеры обычно отдают предпочтение обратной совместимости превыше всего. Хотя он
let
был представлен в ES2015 (и его использование было предусмотрено ранее), предыдущие сценарии, которые использовалисьlet
в качестве имени переменной, продолжали работать должным образом. Например, если ваш сценарий был написан в 2008 году:Тогда это продолжит работать и в 2020 году.
По очень похожим причинам,
async
аawait
также разрешены в качестве имен переменных .Что касается того, почему использование
let
ошибок в строгом режиме - строгом режиме было введено в ES5 в 2009 году. Тогда разработчики языка увидели, что использование новых ключевых слов для объявления переменных было возможным в будущем, но это не было Еще не дошло до камня, а до ES6 еще далеко. После выхода ES5 разработчики сценариев могут подключиться к строгому режиму, чтобы сделать код менее запутанным и заменить скрытые ошибки явными. Хотяlet
не было использовать для объявления переменной еще , запрещая его как имя переменной в строгом режиме улучшилась читаемость будущих сценариев , которые выбравших в строгом режиме, в то же время не нарушая существующие сценарии.источник
let
а некоторые другие произведения действуют как зарезервированные слова только в строгом режиме. В спецификации говоритВы можете увидеть
let
в списке слов, которые запрещены только в строгом режиме. Если вы хотите выдать ошибку для использования вlet
качестве имени переменной, вы можете использовать строгий режимисточник
«использовать строгое»;
это даст ошибку. используйте пакетные инструменты, такие как webpack, grunt для компиляции кода.
источник