Global obyekt
Oldingi bo‘limlar JavaScript'ning primitiv tiplari va qiymatlarini tushuntirib o'tdi. Obyekt tiplari — obyektlar, massivlar va funksiyalar — kitobning keyingi boblarida alohida ko‘rib chiqiladi. Lekin hozir biz tanishib chiqishimiz shart bo‘lgan juda muhim bir obyekt qiymati bor. Global obyekt — bu juda muhim vazifani bajaradigan oddiy JavaScript obyektidir: bu obyektning xossalari JavaScript dasturi uchun ochiq bo‘lgan, global miqyosda aniqlangan identifikatorlardir. JavaScript interpretatori ishga tushganda (yoki veb-brauzer yangi sahifa yuklaganda), u yangi global obyekt yaratadi va unga quyidagilarni aniqlaydigan boshlang‘ich xossalar to‘plamini beradi:
undefined
,Infinity
vaNaN
kabi global konstantalarisNaN()
,parseInt()
(§3.9.2) vaeval()
(§4.12) kabi global funksiyalarDate()
,RegExp()
,String()
,Object()
vaArray()
(§3.9.2) kabi konstruktor funksiyalarMath
vaJSON
(§6.8) kabi global obyektlar
Global obyektning boshlang‘ich xossalari zaxiralangan so‘zlar emas, lekin ularga xuddi shunday munosabatda bo‘lish lozim. Ushbu bobda bu global xossalarning ba’zilari allaqachon tasvirlab berildi. Qolganlarining aksariyati kitobning boshqa qismlarida yoritiladi.
Global obyektga murojaat qilish
Node'da global obyektning global
nomli xossasi mavjud bo‘lib, uning qiymati global obyektning o‘zidir. Shuning uchun Node dasturlarida siz har doim global obyektga global
nomi orqali murojaat qilishingiz mumkin.
Veb-brauzerlarda esa, Window obyekti u ifodalaydigan brauzer oynasi ichidagi barcha JavaScript kodlari uchun global obyekt vazifasini bajaradi. Bu global Window obyektining o‘ziga ishora qiluvchi window
xossasi mavjud bo‘lib, u orqali global obyektga murojaat qilish mumkin. Window obyekti asosiy global xossalarni aniqlash bilan birga, veb-brauzerlar va klient tomonidagi JavaScript uchun xos bo‘lgan ancha ko‘p boshqa globallarni ham aniqlaydi. Veb-vorker oqimlari (Web worker threads
, §15.13) o‘zlari bog‘langan Window'nikidan farqli global obyektga ega. Vorkerdagi kod o‘zining global obyektiga self
orqali murojaat qilishi mumkin.
Nihoyat, ES2020 globalThis
'ni har qanday kontekstda global obyektga murojaat qilishning standart usuli sifatida belgiladi. 2020-yil boshiga kelib, bu xususiyat barcha zamonaviy brauzerlar va Node tomonidan implementatsiya qilingan.