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.
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 konvertatsiyasi juda oddiy va oldindan aytsa bo'ladi. false matn sifatida "false" bo'ladi, null โ "null" bo'ladi, va hokazo:
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:
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 qoidalari
Turli qiymatlar songa qanday o'girilishini quyidagi qoidalar aniqlaydi:
undefined→NaNbo'ladi;null→0bo'ladi;true→1,false→0bo'ladi;- Matn: boshi va oxiridagi bo'shliqlar (probel, tab, yangi qator) olib tashlanadi. Agar qolgan matn bo'sh bo'lsa — natija
0. Aks holda son "o'qiladi"; xatolik bo'lsa —NaN.
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:
- Intuitiv ravishda "bo'sh" bo'lgan qiymatlar —
0, bo'sh matn"",null,undefinedvaNaN— false bo'ladi; - Boshqa barcha qiymatlar — true bo'ladi.
"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!Number(" ") (probel) natijasi 0, ammo Boolean(" ") natijasi true. Ikkalasi turli qoidalarga bo'ysunadi โ buni chalkashtirmang.Xulosa
- String() โ qiymatni matnga o'giradi; deyarli har doim tushunarli natija beradi;
- Number() โ songa o'giradi:
undefined→NaN,null→0,true/false→1/0, bo'sh matn→0, noto'g'ri matn→NaN; - Boolean() โ mantiqiy turga:
0,"",null,undefined,NaN→ false, qolganlari → true; - Diqqat:
"0"va probel" "โ Boolean sifatida true.