tgoop.com/brogrammist/79
Create:
Last Update:
Last Update:
Lexical scopes in for-loop
For-loop strukturasi 4 ta asosiy ifodaviy qismlardan iborat:
for (ifoda1; ifoda2; ifoda3) {
ifoda4;
}
1-ifoda sikl boshida FAQAT BIR MARTA ishga tushadi. Bu yerda biz ko’pincha o’zgaruvchilar e’lon qilamiz, boshlag’ich holatni belgilaymiz.
2-ifoda har safar sikl boshida ishga tushadi. Bu yerga sikl tugatilish sharti qo’yiladi.
4-ifoda siklimiz tanasi. 2-ifodadan ROST qiymatini olar ekanmiz, 4-ifoda har doim bajariladi.
3-ifoda har safar sikl tugaganida ishga tushadi. Bu yerda sikl yakunlangaida qilinishi kerak bo’lgan amal(lar)ni joylaymiz.
JavaScript’da “lexical scope” tushunchasi mavjud. Qisqacha ma’nosi leksik maydon. Yuqoridagi for-loop strukturasidagi ifodalarning har biri o’z leksik maydonini yarata oladi.
Misolga qaraydigan bo’lsak,
setTimeout
1-ifodaning “lexical scope”ida joylashgan. Ifoda esa bir martagina ishga tushadi. O’zgaruvchi let
orqali e’lon qilingani uchun “i”ning qiymati setTimeout
uchun o’shaligicha qolaveradi.1-ifoda ekvivalenti bunday bo’ladi:
let i = (setTimeout(()=>console.log(i)), 0);
// tushunarliroq qilib yozsak
{
let i = 0;
setTimeout(()=>console.log(i), 0);
}
Shunday ekan, for-loop’da bo’ladigan keyingi o’zgarishlarning setTimeout ichidagi “i”ga hech qanday tasiri yo’q. Chunki u alohida “lexical scope”da.
Javob: 0
BY Brogrammist
Share with your friend now:
tgoop.com/brogrammist/79