Junior
JavaScript'da o'zgaruvchilar doirasi (scope) nima?
sobes.tech AI
AIdan javob
Kapsam, o'zgaruvchilar, funksiyalar va ob'ektlarning kodning ma'lum bir qismida mavjudligini belgilaydi.
JavaScriptda, bir nechta turdagi kengayishlar mavjud:
- Global kengayish (Global Scope): Har qanday funksiya yoki blokdan tashqarida e'lon qilingan o'zgaruvchilar, kodning har qanday joyidan kirish mumkin.
- Funksiya kengayishi (Function Scope): Funksiya ichida (ES6dan oldin) e'lon qilingan o'zgaruvchilar, faqat shu funksiya va uning ichki funksiyalarida mavjud.
- Blok kengayishi (Block Scope):
letvaconstyordamida bloklar ichida (masalan,{}yoki sikllar) e'lon qilingan o'zgaruvchilar, faqat shu blok ichida mavjud.
Misol:
// Global kengayish
let globalVar = "Men global";
function someFunction() {
// Funksiya kengayishi (ES6dan oldin)
var functionVar = "Men funksiyada";
console.log(globalVar); // Global o'zgaruvchi kirish mumkin
if (true) {
// Blok kengayishi (let va const uchun)
let blockVar = "Men blokda";
console.log(functionVar); // Funksiya o'zgaruvchisi kirish mumkin
console.log(blockVar); // Blok o'zgaruvchisi kirish mumkin
}
// console.log(blockVar); // Xato: blockVar bu yerda kirish mumkin emas
}
someFunction();
// console.log(functionVar); // Xato: functionVar bu yerda kirish mumkin emas
O'zgaruvchilarni e'lon qilish uchun kalit so'zlar va ularning kengayishiga ta'siri:
| Kalit so'z | ES6dan oldin kengayish | ES6dan keyin kengayish |
|---|---|---|
var |
Funksional | Funksional |
let |
- | Blok kengayishi |
const |
- | Blok kengayishi |
Kengayishni tushunish, o'zgaruvchilar nomlari to'qnashuvlarini oldini olish va toza, oldindan aytib bo'ladigan kod yozish uchun juda muhimdir.