Sobes.tech
Назад к вопросам
Junior — Middle
69

Чем отличаются объявления переменных с помощью ключевых слов var и let в JavaScript?

Компании, где спрашивали
Doubletapp

Ответ от нейросети

sobes.tech AI

В JavaScript ключевые слова var и let используются для объявления переменных, но между ними есть важные отличия:

  1. Область видимости (scope):

    • var имеет функциональную область видимости (function scope). Если объявить var внутри функции, переменная видна во всей функции.
    • let имеет блочную область видимости (block scope). Переменная видна только внутри ближайших фигурных скобок {}.
  2. Поднятие (hoisting):

    • Переменные, объявленные через var, поднимаются (hoisted) и инициализируются значением undefined в начале функции.
    • Переменные с let тоже поднимаются, но не инициализируются, доступ к ним до объявления вызывает ошибку (Temporal Dead Zone).
  3. Повторное объявление:

    • var позволяет повторно объявлять одну и ту же переменную в одной области видимости.
    • let не позволяет повторное объявление в одной области видимости.

Пример:

function test() {
  if (true) {
    var x = 1;
    let y = 2;
  }
  console.log(x); // 1
  console.log(y); // Ошибка: y не определена
}

test();

В современных стандартах JavaScript рекомендуется использовать let (или const для констант) из-за более предсказуемого поведения и ограничения области видимости.