
Учебник по JavaScript
Что позволено?
let — это новое ключевое слово, введенное в ECMAScript 6 (также известное как ES6), которое объявляет переменную с блочной областью действия, аналогичную var. Основное различие между let и var заключается в том, что переменные, объявленные с помощью let, не подлежат подъему переменных и доступны только в пределах блока, в котором они определены.
Использование let
Вот пример использования let для объявления переменной в JavaScript:
let x = 10; console.log(x); // Output: 10
Вы также можете использовать let для объявления переменных с одинаковыми именами в разных блоках, и они будут рассматриваться как отдельные переменные:
let x = 10;
if (x > 5) {
let y = 5;
console.log(y); // Output: 5
}
console.log(y); // Output: Uncaught ReferenceError: y is not defined
В приведенном выше примере переменная y доступна только в пределах блока, определенного оператором if.
Зачем использовать let?
Одна из причин использования let заключается в том, что это помогает предотвратить случайное или непреднамеренное объявление переменных. Например, рассмотрим следующий код:
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
Если вы запустите этот код, вы увидите, что пять раз выводится 5, а не ожидаемое 0, 1, 2, 3, 4. Это связано с тем, что ключевое слово var относится к области действия функции, а не блока, поэтому переменная i доступна во всей функции, в том числе в функции тайм-аута.
Чтобы решить эту проблему, вы можете использовать let для объявления переменной i, которая будет создавать новую переменную i для каждой итерации цикла:
for (let i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
Теперь вывод будет таким, как ожидалось: 0, 1, 2, 3, 4.