Sobes.tech
Junior

let жана var ортосундагы айырма эмнеде?

sobes.tech AI

AIден жооп

var функционалдуу же глобалдуу көрүнүшкө ээ, кайра жарыяланбай жана үстүртөн жазылбайт. Hoistingке дуушар болуп, башында undefined деп белгиленет. let блоктук көрүнүшкө ээ, кайра жазылса болот, бирок ошол эле көрүнүштө кайра жарыяланбайт. Ошондой эле, Hoistingке дуушар болуп, "убактылуу өлүк зонада" турат, башталгандан кийин гана колдонулушу мүмкүн.

Салыштыруу таблицасы:

Өзгөчөлүк var let
Көрүнүш чөйрөсү Функционалдуу/Глобалдуу Блоктук
кайра жарыялоо Ооба Жок
кайра жазуу Ооба Ооба
Hoisting Ооба Ооба
Баштоо undefined - (убактылуу өлүк зона)

Мисал:

// var
функция мисалVar() {
  var x = 10;
  if (true) {
    var x = 20; // x кайра жарыяланат
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
функция мисалLet() {
  let y = 10;
  if (true) {
    let y = 20; // Блоктун ичинде жаңы y өзгөрмө
    console.log(y); // 20
  }
  console.log(y); // 10
}

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