DEV Community

rivojiddeen
rivojiddeen

Posted on

🧩 JavaScript’da Coercion (Tur o‘zgarishi) – “Ko‘rinmaydigan sehr”

Dasturchilikda ba’zi narsalar bor — ular doim ko‘z oldingda, lekin ularni e’tiborsiz qoldirasan.
JavaScript’dagi coercion ham shunday sirli hodisalardan biri.

Oddiy qilib aytganda, coercion — bu ma’lumot turining avtomatik yoki majburiy o‘zgarishi.
Ya’ni JavaScript ba’zan o‘zi bilganicha sonni string, matnni esa son yoki boolean’ga aylantirib yuboradi.
Bu — qulay ham, xavfli ham.

🔹 1. Implicit Coercion (avtomatik o‘zgarish)

Masalan:

console.log('5' + 3); // "53"
console.log('5' - 3); // 2
console.log(true + 1); // 2

Enter fullscreen mode Exit fullscreen mode

Nima bo‘ldi?

'5' + 3 da string ustun keldi → '53'

'5' - 3 da esa son kerak bo‘ldi → 5 - 3 = 2

true → 1 bo‘lib qoldi

Ya’ni JavaScript har safar kontekstga qarab, o‘zi uchun “qulay” turga o‘tkazadi.
Bu avtomatik jarayon implicit coercion deyiladi.

🔹 2. Explicit Coercion (qo‘lda o‘zgartirish)

Ba’zan biz o‘zimiz turlarni ataylab o‘zgartiramiz:

Number('42');    // 42
String(42);      // "42"
Boolean(0);      // false
Enter fullscreen mode Exit fullscreen mode

Bu — explicit coercion, ya’ni biz o‘zimiz JavaScript’ga:

“Hey, bu qiymatni shu turga o‘zgartir!”
deb aytayapmiz.

⚖️ 3. == va === farqi

Ko‘p dasturchilar bu joyda adashadi.
== taqqoslashda coercion ishlaydi, === esa turini ham, qiymatini ham tekshiradi.

0 == false    // true  → coercion bo‘ldi
0 === false   // false → tur farq qiladi
Enter fullscreen mode Exit fullscreen mode

Shuning uchun ko‘pchilik doimo === ishlatishni tavsiya qiladi — bu aniqroq va xatolardan saqlaydi.

🧠 4. Nega bu muhim?

Chunki coercion — yaxshi tushunilmasa, u kutilmagan natijalar beradi.
Ammo agar uni to‘g‘ri tushunsang, bu JavaScript’ni yanada qulay va kuchli qiladi.

Coercion — bu “JavaScriptning sehrli tomoni”,
lekin har qanday sehr kabi — uni boshqarishni bilish kerak.

💡 Xulosa:

Implicit coercion – JavaScript o‘zi tur o‘zgartiradi.

Explicit coercion – biz o‘zimiz o‘zgartiramiz.

== o‘rniga === ishlat, xatolardan saqlan.

Coercion – dushman emas, faqat uni tushunish kerak.

Top comments (0)