Вебсправочник
Справочник JavaScript

let и const: переменные и область видимости

Как объявлять значения, отличать переназначение от изменения объекта и избегать лишних глобальных переменных.

Основная идея

Переменная связывает имя со значением. Используйте const, если не планируете переназначать эту связь, и let, если значение будет меняться. Обе формы имеют блочную область видимости: имя, объявленное внутри блока, не становится автоматически доступным снаружи.

Const не делает объект неизменяемым. Оно запрещает присвоить переменной другой объект, но свойства существующего объекта могут изменяться. Выбор объявления должен отражать намерение кода, а не восприниматься как защита данных.

Пример JavaScript

const project = { title: "Учебный сайт" };
project.title = "Мой справочник";
let completed = 1;
completed += 1;
console.log(project.title, completed);

Пример выведет новое название и число 2. Связь project остаётся прежней, хотя содержимое объекта изменилось.

Частая ошибка

Обращение к let или const до инициализации вызывает ошибку. Не рассчитывайте на возможность использовать переменную выше её объявления.

Самостоятельная проверка

Объявите счётчик через let и увеличьте его дважды. Затем попробуйте переназначить const в отдельном тесте и прочитайте сообщение ошибки.

Код здесь показан для изучения. Встроенная песочница сайта выполняет только HTML/CSS. JavaScript проверяйте в собственном учебном файле или консоли своего тестового проекта; не вставляйте непонятный код на страницах с личными данными.

Следующие темы: объекты, типы данных.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.