Junior
JavaScriptda doira nima?
sobes.tech AI
AIdan javob
JavaScriptda ko'lam (Scope) — bu o'zgaruvchilar va funksiyalar aniqlangan va mavjud bo'lgan kontekst.
Oddiy qilib aytganda, u kodda qanday joyda o'zgaruvchi yoki funksiya haqida murojaat qilish mumkinligini belgilaydi.
Bir nechta turdagi ko'lamlar mavjud:
- Global Ko'lam (Global Scope): Har qanday funksiyadan tashqarida e'lon qilingan o'zgaruvchilar global ko'lamda bo'ladi. Ular kodning istalgan joyidan kirish mumkin.
// Global o'zgaruvchi let globalVar = "Hamma joyda ko'rinadi"; function showGlobal() { console.log(globalVar); // Funksiya ichida mavjud } showGlobal(); - Mahalliy (Funksiya) Ko'lam (Local/Function Scope): Funksiya ichida e'lon qilingan o'zgaruvchilar o'sha funksiyaning mahalliy ko'lamida bo'ladi. Ular faqat shu funksiyada va ichki funksiyalarda mavjud, tashqarida emas.
function showLocal() { // Mahalliy o'zgaruvchi let localVar = "Faqat bu yerda ko'rinadi"; console.log(localVar); } showLocal(); // console.log(localVar); // Xato: localVar aniqlanmagan - Blok Ko'lam (Block Scope): ES6 (ES2015) bilan
letvaconstyordamida kiritildi.{}ichida, ya'ni kod bloklari, sikl yoki shartlarda e'lon qilingan o'zgaruvchilar blok ko'lamiga ega.varbilan e'lon qilingan o'zgaruvchilar blok ko'lamiga ega emas.if (true) { // Blok ko'lamli o'zgaruvchi let blockVar = "Faqat bu blokda ko'rinadi"; console.log(blockVar); } // console.log(blockVar); // Xato: blockVar aniqlanmagan for (let i = 0; i < 2; i++) { // Blok ko'lamli o'zgaruvchi sikl ichida console.log(i); } // console.log(i); // Xato: i aniqlanmagan (agar let ishlatilgan bo'lsa)
Shuningdek, Ko'lam zanjiri (Scope Chain) tushunchasini tushunish muhim. JavaScript o'zgaruvchining qiymatini topishga harakat qilganda, avvalo joriy ko'lamda qidiradi. Agar topilmasa, tashqi (ota) ko'lamga o'tadi va shunday davom etadi, nihoyat global ko'lamga yetadi. Agar o'zgaruvchi ham topilmasa, ReferenceError xatosi chiqariladi.