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 — жок.