Базовое понимание
let объявляет блочную переменную, которую можно переназначить, но нельзя повторно объявить в той же области видимости.
Появилось в ES6 как современная замена большей части сценариев с var.
Ключевые свойства
- область видимости — блок
{ ... }, а не функция;
- не всплывает как инициализированное значение (
var → undefined);
- до строки объявления — Temporal Dead Zone (TDZ).
Когда выбирать
| Нужно | Обычно |
|---|
| Переназначаемая локальная переменная | let |
| Константа / неизменяемая привязка | const (предпочтительный default) |
| Легаси / редкие кейсы с function-scope | var (избегают в новом коде) |
На собеседовании: «по умолчанию const, let если нужна перезапись, var почти не использую».