JavaScript asoslari

Turlarni o'zgartirish

Ko'pincha operator va funksiyalar bergan qiymatimizni avtomatik ravishda kerakli turga o'giradi. Masalan, alert istalgan qiymatni matnga aylantirib ko'rsatadi. Ba'zan esa biz o'zimiz qiymatni aniq turga o'girishimiz kerak bo'ladi. Bu darsda uchta asosiy konvertatsiyani โ€” matnga, songa va mantiqiy turga o'girishni ko'rib chiqamiz.

Bu darsda obyektlar (objects) haqida gapirmaymiz โ€” obyektlarni o'girishni keyinroq, obyektlar mavzusidan so'ng alohida o'rganamiz. Hozircha faqat oddiy (primitiv) qiymatlar bilan ishlaymiz.

String konvertatsiyasi (matnga o'girish)

String konvertatsiyasi biror qiymatning matn ko'rinishi kerak bo'lganda ro'y beradi. Masalan, alert(qiymat) qiymatni ko'rsatish uchun uni matnga o'giradi.

Aniq o'girish uchun String(qiymat) funksiyasini chaqiramiz. U qiymatni matnga (string turiga) aylantiradi:

string-konvertatsiya.js
// natija shu yerda chiqadi

String konvertatsiyasi juda oddiy va oldindan aytsa bo'ladi. false matn sifatida "false" bo'ladi, null โ€” "null" bo'ladi, va hokazo:

string-misollar.js
// natija shu yerda chiqadi
Sonni tez matnga o'girishning yana bir yo'li โ€” bo'sh matnni qo'shish: 123 + "" natijasi "123" bo'ladi. Buni operatorlar darsida batafsil ko'ramiz.

Number konvertatsiyasi (songa o'girish)

Songa o'girish matematik amallar va ifodalarda avtomatik sodir bo'ladi. Masalan, matnga bo'lish amalini qo'llaganda:

auto-number.js
// natija shu yerda chiqadi

Aniq o'girish uchun Number(qiymat) funksiyasidan foydalanamiz. Bu ayniqsa matn shaklidagi qiymatlarni (masalan, forma maydonlaridan olingan) son bilan ishlashdan oldin o'girishda kerak bo'ladi:

number-konvertatsiya.js
// natija shu yerda chiqadi
Agar matn son sifatida o'qib bo'lmaydigan bo'lsa, natija NaN (Not a Number โ€” "son emas") bo'ladi. Bu qiymat qandaydir xatolik ro'y berganini bildiradi.
nan-misol.js
// natija shu yerda chiqadi

Number() konvertatsiya qoidalari

Turli qiymatlar songa qanday o'girilishini quyidagi qoidalar aniqlaydi:

number-qoidalar.js
// natija shu yerda chiqadi
E'tibor bering: null songa o'girilganda 0 bo'ladi, ammo undefined esa NaN bo'ladi. Bu ikki qiymat o'xshash ko'rinsa-da, konvertatsiyada boshqacha ishlaydi.

Boolean konvertatsiyasi (mantiqiy turga o'girish)

Mantiqiy konvertatsiya eng oddiy. U mantiqiy amallarda (masalan, if shartida) avtomatik sodir bo'ladi, lekin aniq holda Boolean(qiymat) orqali ham chaqirsa bo'ladi.

Qoida sodda:

boolean-konvertatsiya.js
// natija shu yerda chiqadi
Ko'p tillarda ichi bo'sh bo'lmagan matn "0" yolg'on (false) hisoblanadi. JavaScript'da esa ichida biror belgi bo'lgan har qanday matn true bo'ladi. Shu jumladan probeldan iborat matn ham!
boolean-tuzoq.js
// natija shu yerda chiqadi
Songa o'girishdagi Number(" ") (probel) natijasi 0, ammo Boolean(" ") natijasi true. Ikkalasi turli qoidalarga bo'ysunadi โ€” buni chalkashtirmang.

Xulosa