Учебник по 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
.