Skip to content

JavaScript Ko'rsatish Sohasi (Scope) ​

Ko'rsatish sohasi (Scope) o'zgaruvchilarning qayerda va qanday foydalanish mumkinligini (ko'rinishini) belgilaydi.

JavaScript-da o'zgaruvchilarning 3 turdagi ko'rsatish sohasi mavjud:

  • Global soha (Global scope)
  • Funksiya sohasi (Function scope)
  • Blok sohasi (Block scope)

Global Soha (Global Scope) ​

Har qanday blok yoki funksiyadan tashqarida e'lon qilingan o'zgaruvchilar global hisoblanadi. Global o'zgaruvchilarga dasturning istalgan joyidan murojaat qilish mumkin.

Misol

js
let carName = "Volvo"; // Global o'zgaruvchi

function myFunction() {
  // carName bu yerda ham ishlaydi
}

Funksiya Sohasi (Function Scope) ​

Har bir funksiyaning o'z ko'rsatish sohasi bor. Funksiya ichida e'lon qilingan o'zgaruvchilar funksiyadan tashqarida ko'rinmaydi.

var, let va const funksiya ichida e'lon qilinganda bir xil — funksiya sohasiga ega bo'ladi.

Misol

js
function myFunction() {
  let carName = "Volvo"; // Faqat funksiya ichida ko'rinadi
}

// carName bu yerda ishlamaydi

Blok Sohasi (Block Scope) ​

ES6 versiyasigacha JavaScript-da blok sohasi yo'q edi. Faqat global va funksiya sohasi mavjud edi. ES6 bilan birga kelgan let va const kalit so'zlari blok sohasini ta'minlaydi.

Blok — bu jingalak qavslar { } orasidagi qismdir.

Misol

js
{
  let x = 2; // Faqat ushbu blok ichida ishlaydi
}
// x bu yerda mavjud emas

Ehtiyot bo'ling!

var kalit so'zi blok sohasiga ega emas. Blok ichida var bilan e'lon qilingan o'zgaruvchi blokdan tashqarida ham ishlayveradi.


Avtomatik Global O'zgaruvchilar ​

Agar siz o'zgaruvchini e'lon qilmasdan (masalan, let yoki const yozmasdan) unga qiymat bersangiz, u funksiya ichida bo'lsa ham avtomatik ravishda global o'zgaruvchiga aylanib qoladi.

Diqqat!

"Strict mode" (qat'iy rejim)da e'lon qilinmagan o'zgaruvchilar global bo'la olmaydi va xatolikka olib keladi.


O'zgaruvchilarning Hayot Davomiyligi (Lifetime) ​

  • JavaScript o'zgaruvchisining hayoti u e'lon qilingan paytdan boshlanadi.
  • Funksiya (mahalliy) o'zgaruvchilari funksiya bajarilib bo'lingach o'chiriladi.
  • Global o'zgaruvchilar esa brauzer oynasi (yoki tab) yopilguncha saqlanadi.

Xulosa ​

  • Global soha: Hamma joydan ko'rinadi.
  • Funksiya sohasi: Faqat funksiya ichida ko'rinadi.
  • Blok sohasi: Faqat { } qavslar ichida ko'rinadi (let va const uchun).
  • Keraksiz global o'zgaruvchilar yaratishdan qoching, chunki ular boshqa o'zgaruvchilar bilan to'qnashib, xatolar keltirib chiqarishi mumkin.