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.