Sobes.tech
Junior — Middle

JavaScriptте let жана var колдонуп өзгөрмөлөрдү жарыялоо аралыктар кандай?

sobes.tech AI

AIден жооп

Өзгөрмөлөрдү var аркылуу жарыялоо функциялык чөйрөгө (function scope) ээ болсо, let блоктук чөйрөгө (block scope) ээ болот. Бул let менен жарыяланган өзгөрмө эң жакын жабык жакшылык ичинде гана жеткиликтүү, мисалы, цикл же шарттын ичинде.

Мындан тышкары, var көтөрүлөт (hoisting) жана код ишке киришкенге чейин undefined маанисинде башталат, ал эми let да көтөрүлөт, бирок башталбайт; өзгөрмөгө жарыялангандан мурда кайрылуу катага алып келет (Убактылуу Өлгөн Зона).

Мисал:

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

Ошондой эле, var бир эле чөйрөдө ошол эле өзгөрмөнү кайра жарыялоого мүмкүндүк берет, бул катага алып келиши мүмкүн, ал эми let — жок.