JS ko‘rinish doirasi
Qo‘llanish doirasi = Ko‘rinish
Qo‘llanish doirasi o‘zgaruvchilarning mavjudligini (ko‘rinishini) belgilaydi.
JavaScript o‘zgaruvchilari 3 turdagi qamrovga ega:
- Global Scope (Global Scope)
- Function Scope (Function Scope)
- Blok Scope (Block Scope)
Global Scope (Global Scope)
Global miqyosda e’lon qilingan o‘zgaruvchilar (har qanday blok yoki funksiyadan tashqari) Global Scopega ega.
Global o‘zgaruvchilarga JavaScript dasturining istalgan joyidan kirish mumkin.
var , let bilan e’lon qilingan o‘zgaruvchilar
va const
blokdan tashqarida e’lon qilinganida juda o‘xshash.
Ularning barchasi global qamrovga ega:
var x = 1; // Global scope
let y = 2; // Global scope
const z = 3; // Global scope
Misol
Funksiyadan tashqarida e’lon qilingan o‘zgaruvchi GLOBAL bo‘ladi.
let carName = "Volvo";
// code here can use carName
function myFunction() {
// code here can also use carName
}
O‘zingiz sinab ko‘ring »
Global o‘zgaruvchilar Global Scopega ega:
Bitta veb-sahifadagi barcha skriptlar va funksiyalar global miqyosdagi o‘zgaruvchiga kirishi mumkin.
Function Scope (Function Scope)
Barcha JavaScript funksiyalari o‘z qamroviga ega.
Funksiya ichida aniqlangan o‘zgaruvchilarga Function tashqarisidan kirish mumkin emas (ko‘rinmaydi).
var , let bilan e’lon qilingan o‘zgaruvchilar
va const
funksiya ichida e’lon qilinganda juda o‘xshash.
Ularning barchasi Funksiya doirasiga ega:
function myFunction1() {
var carName = "Volvo"; // Function Scope
}
function myFunction2() {
let carName = "Volvo"; // Function Scope
}
function myFunction3() {
const carName = "Volvo"; // Function Scope
}
Misol
JavaScript Function ichida e’lon qilingan o‘zgaruvchilar ushbu Function uchun lokal hisoblanadi:
// code here can NOT use carName
function myFunction() {
let carName = "Volvo";
// code here CAN use carName
}
// code here can NOT use carName
O‘zingiz sinab ko‘ring »
Mahalliy o‘zgaruvchilar Function doirasiga ega
- Ularga faqat Function ichidan kirish mumkin
- Funksiyadan tashqari hech qanday skriptlar yoki Functionlar ularga kira olmaydi
- Xuddi shu nomdagi o‘zgaruvchilar funksiyadan tashqarida ishlatilishi mumkin
- Xuddi shu nomdagi o‘zgaruvchilar turli funksiyalarda ishlatilishi mumkin
- Funksiya ishga tushganda mahalliy o‘zgaruvchilar yaratiladi
- Funksiya tugagandan so‘ng mahalliy o‘zgaruvchilar o‘chiriladi
- Argumentlar (parametrlar) funksiyalar ichida mahalliy o‘zgaruvchilar sifatida ishlaydi
Blok Scope (Block Scope)
ES6 dan oldin JavaScript o‘zgaruvchilari faqat Global Scope yoki Function Scopega ega bo‘lishi mumkin edi.
ES6 da JavaScript-ning ikkita muhim yangi kalit so‘zi taqdim etildi: let va const.
Ushbu ikkita kalit so‘z JavaScript-da blok doirasini taqdim etadi.
Kod blokida let va const bilan e’lon qilingan o‘zgaruvchilar "blok-ko‘lamli", ya’ni ularga faqat shu blok ichida kirish mumkin.
Bu ko‘zda tutilmagan o‘zgaruvchilarni qayta yozishni oldini olishga yordam beradi va kodni yaxshiroq tashkil etishga yordam beradi:
Misol
{
let x = 2;
}
// x can NOT be used here
var kalit so‘zi bilan e’lon qilingan o‘zgaruvchilar blok scope-ga ega bo‘la olmaydi.
{ } blokidagi var kalit so‘zi bilan e’lon qilingan o‘zgaruvchilarga blokdan tashqaridan kirish mumkin.
Misol (tavsiya etilmaydi)
{
var x = 2;
}
// x CAN be used here
Avtomatik global o‘zgaruvchilar
Agar siz e’lon qilinmagan o‘zgaruvchiga qiymat bersangiz, u GLOBAL o‘zgaruvchiga aylanadi.
Ushbu kod misoli, qiymat funksiya ichida tayinlangan bo‘lsa ham, global o‘zgaruvchi carNameni e’lon qiladi.
Misol
myFunction();
// code here can use carName
function myFunction() {
carName = "Volvo";
}
O‘zingiz sinab ko‘ring »
Qat’iy rejim (Strict Mode)
Barcha zamonaviy brauzerlar JavaScript-ni "Strict Mode" da ishga tushirishni qo‘llab-quvvatlaydi.
"Qat’iy rejim" da e’lon qilinmagan o‘zgaruvchilar avtomatik ravishda global bo‘lmaydi.
HTML-dagi global o‘zgaruvchilar
JavaScript bilan global qamrov JavaScript muhitidir.
HTMLda global qamrov oyna Object hisoblanadi.
var kalit so‘zi bilan aniqlangan global o‘zgaruvchilar oyna obyektiga tegishli:
Misol (tavsiya etilmaydi)
var carName = "Volvo";
// code here
can use window.carName
O‘zingiz sinab ko‘ring »
let kalit so‘zi bilan aniqlangan global o‘zgaruvchilar oyna obyektiga tegishli emas:
Ogohlantirish
Agar xohlamasangiz, global o‘zgaruvchilarni yaratmang.
Sizning global o‘zgaruvchilaringiz (yoki Functionlaringiz) window o‘zgaruvchilarini qayta yozib yuborishi mumkin.
JavaScript o‘zgaruvchilarning ishlash muddati
JavaScript o‘zgaruvchisining ishlash muddati u e’lon qilingan paytdan boshlanadi.
Function (lokal) o‘zgaruvchilari Function o‘z ishini yakunlagach xotiradan o‘chiriladi.
Veb-brauzerda global o‘zgaruvchilar brauzer oynasini (yoki yorlig‘ini) yopganingizda o‘chiriladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
