Sobes.tech
Junior — Middle
104

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

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

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

sobes.tech AI

Переменные, объявленные с помощью var, имеют функциональную область видимости (function scope), тогда как let обладает блочной областью видимости (block scope). Это значит, что переменная с let доступна только внутри ближайших фигурных скобок, например, внутри цикла или условия.

Кроме того, var поднимается (hoisting) и инициализируется значением undefined до выполнения кода, а let тоже поднимается, но не инициализируется — попытка обратиться к переменной до объявления вызовет ошибку (Temporal Dead Zone).

Пример:

function test() {
  console.log(a); // undefined
  // console.log(b); // ReferenceError
  var a = 1;
  let b = 2;
}

Также var позволяет повторно объявлять одну и ту же переменную в одной области видимости, что может привести к ошибкам, а let — нет.