var, let или const
Введение
Когда я только начинал писать на JavaScript, вопрос про var, let и const казался пустяковым. Но чем больше погружаешься в код, тем яснее понимаешь: выбор способа объявления переменной влияет на читаемость, логику и устойчивость проекта.
Почему var уже не используют
Когда-то var был единственным способом объявить переменную. Сейчас же его считают устаревшим.
Причины простые:
- переменные
varживут в области видимости функции, а не блока{}; - их можно переобъявлять, что легко приводит к ошибкам;
- они «всплывают» (hoisting) странным способом: переменная существует до объявления, но равна
undefined.
Современный JavaScript предлагает два инструмента лучше: let и const.
let: переменная, которая живёт в блоке
Основные свойства
let — это обычная изменяемая переменная, но с правильным, предсказуемым поведением:
- видна только внутри блока, где объявлена;
- не существует до момента объявления — попытка обратиться раньше вызовет ошибку;
- в циклах создаёт новую переменную для каждой итерации.
Почему это важно
Такая логика делает код чище. Ошибок меньше, поведение очевиднее, особенно в условиях, циклах и функциях.
В больших проектах let помогает избежать случайных конфликтов имён и «магических» состояний.
const: как let, но значение нельзя заменить
const работает почти так же, как let, только значение изменить нельзя:
const age = 25
// age = 30 // Ошибка
Но здесь важно понимать одну вещь: заблокирована переменная, а не её содержимое.
Если внутри хранится объект или массив, свойства и элементы менять можно:
const user = {
name: 'Pavel'
}
user.name = 'Pavlo' // полностью допустимо
Это поведение иногда путает новичков, но на практике удобно: объект остаётся тем же объектом, но его содержимое может обновляться.
Как выбирать: короткий и честный совет
Используй const по умолчанию
Так ты явно показываешь: значение меняться не должно. Это делает код предсказуемым.
Переходи на let, если точно планируешь изменить значение
Например:
- счётчик в цикле,
- состояние, которое будет обновляться,
- флаг, который меняется в процессе работы функции.
И забудь про var
Для современных проектов он просто не нужен.
Заключение
Когда я писал эти карточки ещё в 2021 году, мне казалось, что тема уже устаканилась. Сейчас вижу: вопросы остаются до сих пор. И это нормально — JavaScript развивается, появляются новые практики, подходы, рекомендации.
Главное — писать понятный и предсказуемый код.let и const дают для этого всё, что нужно.
В конце статьи будут мои старые визуальные карточки — возможно, они помогут разобрать тему ещё быстрее.








