Sobes.tech
Junior

Каква е разликата между let и var?

sobes.tech AI

Отговор от AI

var има функционална или глобална област на видимост, може да бъде преобявен и презаписан. Подлежи на Hoisting и се инициализира като undefined. let има блокова област на видимост, може да бъде презаписан, но не и преобявен в същата област. Също подлежи на Hoisting, но се намира в "временната мъртва зона" до инициализацията.

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

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

Пример:

// var
function primerVar() {
  var x = 10;
  if (true) {
    var x = 20; // Преобявяване на x
    console.log(x); // 20
  }
  console.log(x); // 20
}

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

primerVar();
primerLet();