JavaScriptda mantiqiy operatorlar

JavaScriptda mantiqiy operatorlar

Bugungi maqolamiz Javascriptda mantiqiy operatorlar haqida. (Logical operators)

JavaScriptda mantiqiy operatorlar

JavaScriptda mantiqiy operatorlar 3

Bismillah.

Demak cho’zib o’tirmayman va dangal tushuntirishga harakat qilaman.

Bilamiz, JavaScriptda falsy va truthy qiymatlar degan tushuncha mavjud.

Bu ikki tushuncha bizga berilayotgan qiymatlarni tekshirishimizda yordam beradi.

Misol uchun, o’zgaruvchi null, undefined, «», 0 bo’lsa dasturimizda ma’lum xatoliklar kelib chiqishi mumkinligi tabiiy hol.

Ularni ajratib turadigan ikki tushuncha esa falsy va truthy. Falsy qiymatlar ushbular:

  1. null

  2. undefined

  3. 0 (nol va nol qiymatlar)

  4. «» (bo’sh string)

  5. false

  6. NaN

Ushbular falsy qiymatlar bo’lsa ulardan qolgan barcha qiymatlar truthy qiymatlar hisoblanadi.

Misol uchun:

15, «bo’sh bo’lmagan string», {objectlar: 1}, [‘arraylar’], true , …vaHokazo

Endi falsy va truthy qiymatlar bilan ishlash, ikki va undan ortiq qiymatlarni ichidan falsy yoki truthy qiymatlarni ajratib olishlar bilan shug’ullanadigan operatorlar mavjud. Ularning nomi mantiqiy operatorlar.

JSda 4 ta mantiqiy operatorlar mavjud.

Ular:

  1. && — AND (va) operatori

  2. || — OR (yoki) operatori

  3. ! — NOT (…emas) operatori

  4. ?? — Nullish coalescing (tarjimasini bilmiman

    😂

    )

Demak boshladik.&& (AND) operatori

&& operatori – chapdan o’ngga yurib ilk falsy bo’lgan qiymatni aniqlab beradi.

Uning sharti shuki, barcha qiymatlar truthy bo’lishi kerak. Agar qiymatlar ichidan biror falsy qiymat chiqsa, shu zahoti tekshirish jarayoni to’xtaydi.

Nima qiymat qaytaradi ?

Agar if va shu kabi true va false qiymatni qabul qiladigan jarayonlar ichida bo’lsa true yoki false qaytaradi. Agar ulardan tashqarida bo’lsa, misol uchun o’zgaruvchiga qiymat berayotganda ishlatsak, u ayni to’xtagan falsy qiymatni qaytaradi yoki falsy yo’q bo’lsa eng oxirgi qiymatni. Misol uchun:

if(true && false) // javob false chiqadi. chunki false qiymati mavjud

if(0 && 6) // false qaytadi, chunki nol falsy qiymat

if(10 && «string qiymat») // true

let x = 100 && 0 && 500; // x = 0

let x = 100 && 22 && 26; // x = 26

P.S: bu sintaks juda kam ishlatiladi.

Ushbu operatorni shaxsan o’zim if, else if… larda qat’iy tekshiruvlar uchun ko’p ishlataman. Misol uchun html input ni qiymatini tekshirishda:

if (inputValue1 && inputValue2) {…}

O’zingiz ham ushbu operatorlar bilan shug’ullanib ko’ring. Men esa davom etaman.|| (OR) operatori

|| operatori – chapdan o’ngga yurib ilk truthy bo’lgan qiymatni aniqlab beradi.

Uning sharti shuki, qiymatlardan biri truthy bo’lishi kerak. Agar qiymatlar ichidan biror truthy qiymat chiqsa, shu zahoti tekshirish jarayoni to’xtaydi.

Nima qiymat qaytaradi ?

Agar if va shu kabi true va false qiymatni qabul qiladigan jarayonlar ichida bo’lsa true yoki false qaytaradi. Agar ulardan tashqarida bo’lsa, misol uchun o’zgaruvchiga qiymat berayotganda ishlatsak, u ayni to’xtagan truthy qiymatni qaytaradi yoki umuman truthy yo’q bo’lsa eng oxirgi qiymatni. Misol uchun:

if(true || false) // javob true chiqadi. chunki truthu qiymat mavjud

if(0 || 6) // true qaytadi, chunki 6 truthy qiymat

if(10 || «string qiymat») // true

if(undefined || null) // false

let x = 100 || 0 || 500; // x = 100, chunki ilk truthy qiymat bu 100

let x = 100 || 22 || 26; // x = 100

let x = undefined || null // x = null

! – NOT (…emas) operatori

! (NOT) operatori – truthy qiymatni false ga , falsyni true ga alishtirib beradi , hullas bu operator orqali har qanday qiymatni tipini boolean ga o’girsak bo’ladi.

Misollar:

let val = 120;

console.log(!val) // false

val = undefined;

console.log(!val) // true

Shuningdek bu belgini ketma ket bir necha marta ishlatsak bo’ladi. U holatda true / false qiymatlari aylanib turadi.

Misol:

val = «truthy string»;

console.log(!!val) // true

console.log(!!!val) // false

va hokazo.

Bu operatorni shaxsan o’zim juda ko’p o’rinlarda ishlataman. Chunki qiymatlarni boolean tipiga aylantirishda juda qulay. Yana bu operator orqali tekshiruvlarni osongina bajarsak bo’ladi. Taqqoslash jarayonini teskariga aylantirishimiz ham mumkin. Misol uchun quyidagi kodda x ning qiymat y ga teng bo’lmasa alert ishlaydi:

let x = 10;

let y = 12;

x !== y ? alert(«teng emas») : alert(«qiymatlar teng»);

Yana misollar juda ko’p. O’zingizdan harakat talab qilinadi.

😂

?? – Nullish coalescing

Ushbu operatorga esa truthy va falsy degan tushunchalar notanish. Bu operator birinchi qiymati belgilangan o’zgaruvchini qaytaradi.

Sharti – berilgan qiymat null/undefined bo’lmasligi. Bu holatda || (OR) operatori ilg’amagan bizga qulay bo’lgan bir necha holatlar ro’y beradi. Misol uchun ba’zida biz nol va bo’sh stringlarni «valid» qiymat sifatida olishimiz kerak bo’lib qoladi. Bu holatda || operatori ojiz qoladi. Taqqoslaymiz:

0 || 100 // 100 qaytadi va nolni il’gamadi, ya’ni nol falsy qiymat deb biladi

0 ?? 100 // 0, nol ni javob sifatida qaytaradi. Chunki bu «valid» qiymat. // null yoki undefined emas.

null ?? 12 ?? 3 // 12

va hokazo.

Shu bilan maqolam shu joyda to’xtaydi.

🙁

Vaqtlarim biroz tig’iz bo’lgani uchun murakkablashtirib o’tirmadim.

Maslahat berardimki, ushbu operatorlarni o’zingiz ham sinab ko’ring va yangi bilimlarni qidiring.

Muallif: @JoshDeveloper