JavaScript asoslari

Shartli operatorlar: if, ?

Ba'zan turli shartlarga qarab turli amallarni bajarish kerak bo'ladi. Buning uchun if operatoridan va "savol belgisi" deb ataluvchi ternar operatordan ? foydalanamiz.

if operatori

if(...) operatori qavs ichidagi shartni hisoblaydi va uni true ga o'girsa, ichidagi kodni bajaradi:

if-oddiy.js
// natija shu yerda chiqadi
Agar blok ichida bitta amal bo'lsa ham, uni { } qavs ichiga olish tavsiya etiladi โ€” bu kodni o'qishni osonlashtiradi va xatolarning oldini oladi.

Shart boolean'ga o'giriladi

if qavs ichidagi ifodani hisoblab, natijasini boolean turiga o'giradi. Bu o'zgartirish oldingi darsdagi qoidalar bo'yicha ketadi. Eslatib o'tsak:

if-boolean.js
// natija shu yerda chiqadi
Shartni oldindan hisoblab, keyin if ga berish ham mumkin: let shart = (yosh >= 18); if (shart) {...}. Bu murakkab shartlarni o'qishni osonlashtiradi.

else bloki

if ga ixtiyoriy else bloki qo'shsa bo'ladi. U shart false bo'lganda bajariladi:

if-else.js
// natija shu yerda chiqadi

Bir nechta shart: else if

Ba'zan bir nechta variantni tekshirish kerak. Buning uchun else if ishlatiladi:

else-if.js
// natija shu yerda chiqadi

Shartlar yuqoridan pastga ketma-ket tekshiriladi. Qaysi biri birinchi bo'lib true bersa, o'sha blok ishlaydi va qolganlari tekshirilmaydi. Agar hech biri mos kelmasa โ€” oxirgi else ishlaydi.

Ternar operator ? :

Ba'zan bir shartga qarab o'zgaruvchiga qiymat tayinlash kerak bo'ladi. Buni if bilan yozsak, uzun bo'ladi:

let ruxsat;
let yosh = 20;

if (yosh >= 18) {
  ruxsat = true;
} else {
  ruxsat = false;
}

Ternar (uchlik) operator ? buni bir qatorga jamlaydi. Sintaksisi:

let natija = shart ? qiymat1 : qiymat2;

Avval shart hisoblanadi. Agar u true bo'lsa โ€” qiymat1 qaytariladi, aks holda qiymat2:

ternar.js
// natija shu yerda chiqadi
Shart atrofidagi qavs shart emas, lekin u kodni o'qishni osonlashtiradi. Yuqoridagi yosh >= 18 allaqachon boolean qaytargani uchun ? true : false ortiqcha โ€” let ruxsat = (yosh >= 18); deb yozish yetarli. Ternar boshqa qiymatlar qaytaradigan hollarda foydali.

Ichma-ich (nested) ternar

Bir nechta shartni ternar orqali ketma-ket tekshirsa bo'ladi:

nested-ternar.js
// natija shu yerda chiqadi

Bu qanday ishlashini ko'raylik. Avval yosh < 13 tekshiriladi โ€” false. So'ng yosh < 18 โ€” false. Keyin yosh < 65 โ€” true, demak "kattalar" qaytariladi.

Ichma-ich ternarni ehtiyotkorlik bilan ishlating. Ikki-uchtadan ortiq shart bo'lsa, kodni o'qish qiyinlashadi. Bunday holatda if / else if ni afzal ko'ring โ€” u aniqroq va tushunarliroq.
Ternarni faqat qiymat qaytarish uchun ishlating. Agar shartga qarab bir nechta amal bajarish kerak bo'lsa (masalan, funksiyalar chaqirish), if dan foydalaning โ€” bu to'g'ri va tushunarli yondashuv.

Xulosa