Seriya: JavaScript Basics Dars 2

Execution Context nima?

Execution Context tushunchasini o'rganing: Global va Function Execution Context, Creation Phase va Execution Phase.

2-dars

🧠 Execution Context nima?

1️⃣ Execution Context — oddiy tilda

Execution Context — bu:

JS kodni bajarish uchun yaratadigan maxsus "ish muhiti".

Har safar:

  • Dastur boshlansa
  • Funksiya chaqirilsa

👉 Yangi execution context yaratiladi.

2️⃣ Nechta turi bor?

JS'da 3 xil execution context bor:

  1. Global Execution Context (GEC)
  2. Function Execution Context (FEC)
  3. Eval (deyarli ishlatilmaydi)

Bizga asosan 1 va 2 kerak.

3️⃣ Global Execution Context (GEC)

JS fayl ishga tushishi bilan:

👉 avtomatik yaratiladi
👉 call stack'ga birinchi bo'lib qo'yiladi

U ichida:

  • Global object (browser'da window)
  • this
  • Global variablelar

yaratiladi.

4️⃣ Function Execution Context (FEC)

Har safar funksiya chaqirilganda:

👉 yangi execution context yaratiladi
👉 stack'ga qo'yiladi
👉 funksiya tugaganda o'chiriladi

5️⃣ Execution Context ichida nima bor?

Har bir execution context 3 qismdan iborat:

1. Variable Environment

let / const / var / functionlar shu yerda saqlanadi

2. Scope Chain

Tashqi scope'ga bog'lanish

3. this qiymati

6️⃣ Eng muhim joy — Creation Phase vs Execution Phase

Har bir execution context 2 bosqichda ishlaydi:

🟡 Creation Phase

Bu yerda:

  • Variablelar e'lon qilinadi
  • Function declarationlar xotiraga yoziladi
  • this aniqlanadi

⚠️ Kod hali ishlamaydi.

🟢 Execution Phase

Endi kod qatorma-qator bajariladi.

🔥 Misol

console.log(a);
var a = 10;

Nega undefined chiqadi?

Chunki Creation Phase'da:

a = undefined;

deb joy ajratiladi.

Keyin Execution Phase'da:

a = 10;

bo'ladi.

🔍 Step-by-step:

1️⃣ Creation Phase

// Variablelar e'lon qilinadi
var a = undefined;

2️⃣ Execution Phase

console.log(a); // undefined (chunki hali 10 ga teng emas)
a = 10;         // Endi 10 ga teng bo'ldi

📝 Xulosa

  • Execution Context — kod bajarish uchun "ish muhiti"
  • Global va Function Execution Context bor
  • Har bir context 2 bosqichda ishlaydi: Creation va Execution
  • Creation Phase'da variablelar undefined bo'ladi
  • Execution Phase'da kod bajariladi va qiymatlar beriladi