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
agenomi shu joyga bog'lanadi25qiymat 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→undefinedbilan initializelet→ 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 |