JavaScript dasturlash tilida scope tushunchasi va ularning turlari

JavaScript dasturlash tilida scope tushunchasi va ularning turlari

Mirzo Ulug'bek

Scope nima ?

Keling avval scope nima ekanligini tushunib olsak, scope - bu qiyin narsa emas. Unda nima axir deyishingiz mumkin. Hozir tushuntiraman. JavaScript dasturlash tilini o'rganar ekansiz { } - ushbu belgini ko'rgansiz bu belgi o'zbek tilida "jingalak qavslar", ingliz tilida "curly braces", rus tilida "фигурные скобки", qozoq tilida "бұйра жақшалар" deyiladi. Quyida rasm keltiraman faqat adashtirib yubormang bu Gitlerning mo'ylabi(mo'ylavi) emas. "Mashu narsaning ichi, tashi emas ichi scope deyilar ekanda-a, tushundim, tushunarli" - degandursiz ichingizda, yaxshi keling chuqurlashamiz.


Jingalak qavslar

Scope nima ekanligini bilib olgan bo'lsangiz unda boshladik.

Bismillah

Java, Python, Ruby, Golang, C, C++, C#, Dart, Rust dasturlash tillarida scopelarning qanday turlari borligini bilmadim-u, lekin JavaScript dasturlash tilida scopelarning 3 turdagisi mavjud.


Scope turlari

  1. Global scope
  2. Function scope (Function scopeni erkalatib Local scope deb ham atashadi)
  3. Block scope


Global scope

Siz hech qanday scope yaratmasdan kod yozadigan bo'lsangiz, masalan o'zgaruvchi yaratadigan bo'lsangiz shuni bilingki siz Global scope ichida turibsiz. Yaratgan o'zgaruvchingiz ham Global scope ichida.

Global scope

"Iyaa saal g'alatiroomisiz? bu yerda { }ni ko'rmayapman-ku siz o'zingiz aytdingiz
{ }ning ichi scope deyiladi deb. Bu yerda esa u yo'q" - deb aytishingiz mumkin ha yo'q, men ham ko'rmayapman. U berkinib olganmikin, albatta hazil:) bu shunchaki hazil JavaScriptda barcha kodlar Global scope ichida bo'ladi, uni JavaScriptning o'zi tabiiy holatda yaratib qo'ygan. Demak takrorlab olamiz, agar biz scope yaratmasak demak biz Global scope ichidamiz.


Function scope

Function scope yoki erkalatib Local scope

Funksiyaga tegishli bo'lgan { }lar Function scope deyiladi. Funksiyaning har qanday turi bo'lsa ham, function declaration, function expression xattoki arrow function bo'lsa ham funksiyaga tegishli { }mi? bo'ldi Erik Haydar aytganidek "uyidi, buyidi" ketmaydi. Demak funksiyaga tegishli { }ni ko'rsak u Function scope(Local scope) bo'ladi. Yuqorida aytib o'tdim Function scopeni erkalatib Local scope deb ham chaqirishadi.


Block scope

Shunchaki o'zimizga ichki scope kerak bo'ladigan bo'lsa { }ni ochib kod yozadigan bo'lsak biz Block scope ichida kod yozgan bo'lamiz.

Block scope

Undan tashqari bular ham Block scope hisoblanadi (rasmlarga qarang)

Block scopelar

Umuman olganda scope, Global scope va Function scope(Local scope) bo'lmasa demak u Block scope. Juda ham oson.


O'zgaruvchilarning scopelarda ishlashi

Agar o'zgaruvchi Global scopeda bo'lsa, uni e'lon qilingan joydan keyingi qatorlarda istalgancha joyda, istalgancha ishlata olamiz.

O'zgaruvchilarning scopelarda ishlashi

Bu yerda scope yo'q demak biz Global scopedamiz.



Function scope(Local scope)

Agar o'zgaruvchilar Function scope(Local scope)da bo'lsa, ular faqatgina shu scope ichida ishlaydi. Agar o'zgaruvchi var bilan e'lon qilingan bo'lsachi?
Umuman farqi yo'q var Block scopeni tanimaydi holos Function scope(Local scope)ni esa o'zidan ham yaxshiroq taniydi, shuning uchun ishlamaydi.



Block scope

Agar o'zgaruvchilar Block scopeda bo'lsachi, unda ham faqat shu Block scope ichida ishlaydi, agar o'zgaruvchi var bilan e'lon qilingan bo'lmasa, chunki var Block scopeni tan olmaydi. Modul scope ham bor desam nima deysiz faqat u haqida keyinroq.

Report Page