> В чем разница между var, const и let в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: ЛитРес

Стек: JavaScript

> Пример ответа

Разница между var, let и const в JavaScript заключается в области видимости, возможности переопределения и поведении при всплытии (hoisting).

  • var: имеет функциональную (или глобальную) область видимости. Переменная, объявленная через var, всплывает (hoisting) и инициализируется значением undefined. Её можно переобъявлять и изменять. Пример:

    JAVASCRIPT
    console.log(a); // undefined (всплытие)
    var a = 5;
    var a = 10; // переобъявление допустимо
  • let: имеет блочную область видимости (внутри {}). Всплывает, но не инициализируется (временная мёртвая зона до объявления). Переобъявление в той же области запрещено, но изменение значения разрешено.

    JAVASCRIPT
    // console.log(b); // ReferenceError (временная мёртвая зона)
    let b = 3;
    b = 4; // изменение допустимо
    // let b = 5; // SyntaxError: переобъявление запрещено
  • const: также имеет блочную область видимости и временную мёртвую зону. Отличие от let в том, что переменная должна быть инициализирована при объявлении, и её значение нельзя изменить (для примитивов; для объектов ссылка фиксирована, но свойства можно менять).

    JAVASCRIPT
    const c = 10;
    // c = 20; // TypeError: присваивание константе
    const obj = { key: 'value' };
    obj.key = 'new'; // допустимо, меняется свойство, а не ссылка

Итог: используйте const по умолчанию, let — когда нужно переприсваивание, избегайте var в современном коде из-за неочевидного поведения.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью