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.