Sobes.tech
Junior

Фарқи байни let ва var чист?

sobes.tech AI

Ҷавоб аз AI

var дорои доираи функсионалӣ ё глобалӣ, метавонад дубора эълон ва навсозӣ шавад. Ба Hoisting тобеъ аст ва ҳамчун undefined оғоз мешавад. let дорои доираи блокӣ аст, метавонад навсозӣ шавад, аммо дар ҳамон доира дубора эълон кардан мумкин нест. Ҳамчунин ба Hoisting тобеъ аст, аммо дар "зонаи маргии муваққат" қарор дорад то оғози инициализация.

Таблиғи муқоиса:

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

Масалан:

// var
function мисолVar() {
  var x = 10;
  if (true) {
    var x = 20; // Дубора эълон кардани x
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function мисолLet() {
  let y = 10;
  if (true) {
    let y = 20; // Нави тағйирёбандаи y дар доираи блок
    console.log(y); // 20
  }
  console.log(y); // 10
}

мисолVar();
мисолLet();