Mantiqiy qiymatlar (Boolean values)
Mantiqiy (boolean
) qiymat rost yoki yolg‘onni, "yoqilgan" yoki "o‘chirilgan"ni, "ha" yoki "yo‘q"ni ifodalaydi. Bu tipning faqat ikki xil qiymati mavjud. Zaxiralangan true
va false
so‘zlari aynan shu ikki qiymatni ifodalaydi.
Mantiqiy qiymatlar odatda JavaScript dasturlaringizda bajariladigan taqqoslashlar natijasida hosil bo‘ladi. Masalan:
Bu kod a
o‘zgaruvchisining qiymati 4 soniga teng yoki yo‘qligini tekshiradi. Agar teng bo‘lsa, bu taqqoslash natijasi true
mantiqiy qiymati bo‘ladi. Agar a
4 ga teng bo‘lmasa, taqqoslash natijasi false
bo‘ladi.
Mantiqiy qiymatlar JavaScript'ning boshqaruv tuzilmalarida keng qo‘llaniladi. Masalan, JavaScript'dagi if/else
ko‘rsatmasi mantiqiy qiymat true
bo‘lsa bir amalni, false
bo‘lsa boshqa bir amalni bajaradi. Odatda, mantiqiy qiymat hosil qiluvchi taqqoslashni to‘g‘ridan-to‘g‘ri undan foydalanadigan ko‘rsatma bilan birlashtiriladi. Natija quyidagicha ko‘rinadi:
`
Bu kod a
ning 4 ga tengligini tekshiradi. Agar shunday bo‘lsa, b
ga 1 qo‘shadi; aks holda, a
ga 1 qo‘shadi.
"Truthy" va "Falsy" qiymatlar
§3.9-bo‘limda muhokama qilganimizdek, har qanday JavaScript qiymatini mantiqiy qiymatga o‘girsa bo‘ladi. Quyidagi qiymatlar false
'ga o‘giriladi va shuning uchun false
kabi ishlaydi:
Boshqa barcha qiymatlar, jumladan, barcha obyektlar (va massivlar) true
'ga o‘giriladi va true
kabi ishlaydi. false
va unga o‘giriladigan oltita qiymat ba’zan falsy qiymatlar deb ataladi, qolgan barcha qiymatlar esa truthy deb ataladi. JavaScript mantiqiy qiymatni kutgan har qanday joyda, falsy qiymat false
kabi, truthy qiymat esa true
kabi ishlaydi.
Misol uchun, o
o‘zgaruvchisi yo biror obyektni, yo null
qiymatini saqlaydi deb faraz qilaylik. Siz o
ning null
emasligini quyidagi kabi if
ko‘rsatmasi bilan aniq tekshirishingiz mumkin:
Teng emas !==
operatori o
ni null
bilan taqqoslaydi va true
yoki false
qiymatini qaytaradi. Lekin siz taqqoslashni tushirib qoldirib, uning o‘rniga null
'ning falsy, obyektlarning esa truthy ekanligiga tayansangiz ham bo‘ladi:
Birinchi holda, if
tanasi faqat o
null
bo‘lmagandagina bajariladi. Ikkinchi holat esa unchalik qat’iy emas: u if
tanasini faqat o
qiymati false
yoki biror falsy qiymat (masalan, null
yoki undefined
) bo‘lmagandagina bajaradi. Dasturingiz uchun qaysi if
ko‘rsatmasi mos kelishi o
'ga qanday qiymatlar tayinlanishini kutayotganingizga bog‘liq. Agar siz null
'ni 0 va "" dan farqlashingiz kerak bo‘lsa, unda aniq taqqoslashdan foydalanishingiz lozim.
Mantiqiy qiymatlarning toString()
metodi mavjud bo‘lib, siz uni qiymatlarni "true" yoki "false" satrlariga o‘zgartirish uchun ishlatishingiz mumkin, lekin ularning boshqa foydali metodlari yo‘q. Buning API'si sodda bo'lishiga qaramay, uchta muhim mantiqiy operator mavjud.
&&
operatori mantiqiy VA (AND) amalini bajaradi. U faqat va faqat ikkala operandi ham truthy bo‘lgandagina truthy qiymatga ega bo‘ladi; aks holda, falsy qiymatga ega bo‘ladi.
||
operatori mantiqiy YOKI (OR) amalidir: u operandlaridan biri (yoki ikkalasi) truthy bo‘lsa, truthy qiymatga, ikkala operandi ham falsy bo‘lsa, falsy qiymatga ega bo‘ladi.
Nihoyat, birlik (unary) !
operatori mantiqiy INKOR (NOT) amalini bajaradi: u operandi falsy bo‘lsa true
'ga, operandi truthy bo‘lsa false
'ga ega bo‘ladi. Masalan:
Bu operatorlar haqida to‘liq ma’lumot §4.10-bo‘limda keltirilgan.