JS ko‘rinish doirasi

ULASHISH

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:

Misol

let carName = "Volvo";
// code here can NOT use window.carName
O‘zingiz sinab ko‘ring »

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!