Junior
Маъзои (scope) тағйирёбандаҳо дар JavaScript чист?
sobes.tech AI
Ҷавоб аз AI
Ҳудудлик, ўзгарувчилар, функциялар ва объектларнинг коднинг муайян қисмида мавжудлигини белгилайди.
JavaScriptда турли хил ҳудудлар мавжуд:
- Жаҳон ҳудуди (Global Scope): Ҳар қандай функция ёки блокдан ташқари эълон қилинган ўзгарувчилар, коднинг ҳар қандай жойидан кириш мумкин.
- Функция ҳудуди (Function Scope): ES6дан олдин, функцияда (ўзгартирилган) эълон қилинган ўзгарувчилар, фақат шу функцияда ва унинг ичидаги функцияларда мавжуд.
- Блок ҳудуди (Block Scope):
letваconstёрдамида блоклар (масалан,{}ёки циклларда) ичида эълон қилинган ўзгарувчилар, фақат шу блокда мавжуд.
Масалан:
// Жаҳон ҳудуди
let globalVar = "Мен жаҳонман";
function someFunction() {
// Функция ҳудуди (ES6дан олдин)
var functionVar = "Мен функцияда";
console.log(globalVar); // Жаҳон ўзгарувчиси мавжуд
if (true) {
// Блок ҳудуди (let ва const учун)
let blockVar = "Мен блокда";
console.log(functionVar); // Функция ўзгарувчиси мавжуд
console.log(blockVar); // Блок ўзгарувчиси мавжуд
}
// console.log(blockVar); // Хатолик: blockVar бу ерда мавжуд эмас
}
someFunction();
// console.log(functionVar); // Хатолик: functionVar бу ерда мавжуд эмас
Калит сўзлар, ўзгарувчиларни эълон қилиш ва уларнинг ҳудудга таъсири:
| Калит сўз | ES6дан олдин ҳудуд | ES6дан кейин ҳудуд |
|---|---|---|
var |
Функционал | Функционал |
let |
- | Блок ҳудуди |
const |
- | Блок ҳудуди |
Ҳудудни тушуниш, ўзгарувчиларнинг номларини келишмовчиликларини олдини олиш ва тоза, олдиндан айтилган код ёзиш учун жуда муҳимдир.