Junior
JavaScriptте чөйрө деген эмне?
sobes.tech AI
AIден жооп
JavaScriptтеги көрүнүш чөйрөсү (Scope) — бул өзгөрмөлөр жана функциялар аныкталган жана жеткиликтүү болгон контекст.
Жөнөкөй айтканда, ал коддо өзгөрмө же функцияга кайсыл жерден шилтеме жасоого болорун аныктайт.
Көптөгөн түрлөрү бар:
- Глобалдык көрүнүш чөйрөсү (Global Scope): Бардык функциялардан тышкары жарыяланган өзгөрмөлөр глобалдык көрүнүш чөйрөсүндө болот. Алар коддун каалаган жеринен жеткиликтүү.
// Глобалдык өзгөрмө let globalVar = "Мен бардык жерде көрүнөм"; function showGlobal() { console.log(globalVar); // функцияда жеткиликтүү } showGlobal(); - Жергиликтүү (функциялык) көрүнүш чөйрөсү (Local/Function Scope): Функциянын ичинде жарыяланган өзгөрмөлөр ошол функциянын жергиликтүү көрүнүш чөйрөсүндө болот. Алар гана ошол функцияда жана анын ички функцияларында жеткиликтүү, сыртта эмес.
function showLocal() { // Жергиликтүү өзгөрмө let localVar = "Мен гана ушул жерде көрүнөм"; console.log(localVar); } showLocal(); // console.log(localVar); // ката: localVar аныкталган эмес - Блоктук көрүнүш чөйрөсү (Block Scope): ES6 (ES2015) менен
letжанаconstкиргизилгенден кийин пайда болду.{}мүчөлөрүнүн ичинде жарыяланганletжеconstменен өзгөрмөлөр блоктук көрүнүш чөйрөсүнө ээ.varменен жарыяланган өзгөрмөлөр блоктук көрүнүшкө ээ эмес.if (true) { // Блоктук көрүнүштөгү өзгөрмө let blockVar = "Мен ушул блокто гана көрүнөм"; console.log(blockVar); } // console.log(blockVar); // ката: blockVar аныкталган эмес for (let i = 0; i < 2; i++) { // Циклдин блоктук көрүнүшүндөгү өзгөрмө console.log(i); } // console.log(i); // ката: i аныкталган эмес (эгер `let` колдонулса)
Маанилүү, ошондой эле Көрүнүш чынжыры (Scope Chain) түшүнүгүн түшүнүү керек. JavaScript өзгөрмөнүн маанисин табуу үчүн, ал биринчи учурда учурдагы көрүнүш чөйрөсүн карайт. Эгер ал таба албаса, сырткы (ата-эне) көрүнүш чөйрөсүнө өтөт жана ошондой эле, глобалдык көрүнүш чөйрөсүнө чейин. Эгер ал дагы таба албаса, ReferenceError ката чыгат.