Назад к вопросам
Junior
67
questionbank

В чем разница между let и var?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

var имеет функциональную или глобальную область видимости, может быть переобъявлен и перезаписан. Подвержен Hoisting, инициализируясь undefined. let имеет блочную область видимости, может быть перезаписан, но не переобъявлен в той же области. Также подвержен Hoisting, но находится в "временной мертвой зоне" до инициализации.

Таблица сравнения:

Характеристика var let
Область видимости Функциональная/Global Блочная
Переобъявление Да Нет
Перезапись Да Да
Hoisting Да Да
Инициализация undefined - (временная мертвая зона)

Пример:

// var
function exampleVar() {
  var x = 10;
  if (true) {
    var x = 20; // Переопределение x
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function exampleLet() {
  let y = 10;
  if (true) {
    let y = 20; // Новая переменная y в блочной области видимости
    console.log(y); // 20
  }
  console.log(y); // 10
}

exampleVar();
exampleLet();