1. Global Scope: Har qanday funktsiya yoki blokdan tashqarida e'lon qilingan o'zgaruvchilar
global scopge ga tegishli. Ularga kodning istalgan joyidan, jumladan,
funksiyalar va
bloklar ichidan kirish mumkin. Global oʻzgaruvchilar global obyektga biriktirilgan
(brauzerda u window obyektidir) va ularga
window obyekti yordamida kirish mumkin.
2. Block Scope: ES6 da
let va
const kalit soʻzlari bilan kiritilgan
block scope kod blokida eʼlon qilingan oʻzgaruvchilarga ishora qiladi
(masalan, jingalak qavslar ichida {}). Bu oʻzgaruvchilarga faqat oʻsha blok va har qanday ichki bloklar ichida kirish mumkin.
3. Local or Function Scope: Funktsiya ichida e'lon qilingan o'zgaruvchilar local scope ga tegishlidir. Ularga faqat ushbu funktsiya doirasida kirish mumkin va undan tashqarida 🙅♂️. Bu
inkapsulyatsiyaga imkon beradi va o‘zgaruvchilarga funksiyadan tashqaridan kirish yoki o‘zgartirishni oldini oladi.
4. Lexical Scope: Statik scope sifatida ham tanilgan, lexical scope oʻzgaruvchilarning manba kodidagi joylashuviga qarab koʻrinishini bildiradi. JavaScript-da o'zgaruvchilar ichki funksiyalar ichidagi joylashuvi va ular aniqlangan leksik muhitga qarab hal qilinadi. Bu shuni anglatadiki, ichki funksiyalar tashqi funksiyalarida belgilangan oʻzgaruvchilarga kirish huquqiga ega, lekin aksincha emas.
5. Modul Scope: ES6 da
import va
eksport kalit soʻzlari bilan kiritilgan,
modul scope modul ichidagi oʻzgaruvchilar va funksiyalar scope ga ishora qiladi. Modullar kodni alohida fayllarga tartibga solish uchun ishlatiladi va modul ichida e'lon qilingan o'zgaruvchilar va funksiyalarga, agar
export kalit so'zi yordamida aniq eksport qilinmasa, faqat shu modul ichida foydalanish mumkin.
#JavaScirpt #scopes
@Diyorbekk_dev