Seriya: JavaScript Basics Dars 3

Variable (var / let / const)

JavaScript'da variable tushunchasini o'rganing: var, let va const farqlari, scope, TDZ, hoisting va qachon qaysi biri ishlatiladi.

3-dars

🧠 Variable (var / let / const)

1️⃣ Variable o'zi nima?

Variable — bu:

Xotirada bir joy va unga berilgan nom.

Masalan:

let age = 25;

Engine ichida:

  • xotiradan joy ajratiladi
  • age nomi shu joyga bog'lanadi
  • 25 qiymat saqlanadi

2️⃣ var — eski mexanizm

var a = 10;

Xususiyatlari:

  • Function scope
  • Hoisting bor
  • Creation phase'da undefined
  • Global object'ga qo'shiladi (browser'da window)

Muammo:

var a = 1;
var a = 2; // xato bermaydi

Redeclare mumkin. Bu xavfli.

3️⃣ let — zamonaviy xavfsiz versiya

let b = 20;

Xususiyatlari:

  • Block scope
  • TDZ bor (Temporal Dead Zone)
  • Redeclare mumkin emas
  • Global object'ga qo'shilmaydi

Misol:

let b = 1;
let b = 2; // ❌ xato

4️⃣ const — o'zgarmas bog'lanish

const c = 30;

Muhim:

const qiymatni muzlatmaydi.
Bog'lanishni muzlatadi.

Misol:

const obj = { name: "Ali" };
obj.name = "Vali"; // ishlaydi

Lekin:

obj = {}; // ❌ xato

Chunki reference o'zgarmoqchi.

5️⃣ Engine darajasida farq

Creation phase'da:

  • var → undefined bilan initialize
  • let → uninitialized (TDZ)
  • const → uninitialized (TDZ + darhol qiymat kerak)

6️⃣ Qachon qaysi biri ishlatiladi?

Zamonaviy JS qoidasi:

  • Default → const
  • Agar qiymat o'zgarishi kerak bo'lsa → let
  • var → deyarli ishlatilmaydi

📊 Taqqoslash jadvali

Xususiyat var let const
Scope Function Block Block
TDZ Yo'q Ha Ha
Redeclare Ha Yo'q Yo'q
Reassign Ha Ha Yo'q
Global object Ha Yo'q Yo'q