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:
{ } 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:
0, bo'sh matn"",null,undefined,NaN— false ("falsy" qiymatlar);- Boshqa barcha qiymatlar — true ("truthy" qiymatlar).
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:
Bir nechta shart: else if
Ba'zan bir nechta variantni tekshirish kerak. Buning uchun else if ishlatiladi:
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:
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:
Bu qanday ishlashini ko'raylik. Avval yosh < 13 tekshiriladi โ false. So'ng yosh < 18 โ false. Keyin yosh < 65 โ true, demak "kattalar" qaytariladi.
if / else if ni afzal ko'ring โ u aniqroq va tushunarliroq.if dan foydalaning โ bu to'g'ri va tushunarli yondashuv.Xulosa
if(shart) { ... }โ shart true bo'lsa blok bajariladi;- Shart avtomatik boolean'ga o'giriladi (falsy va truthy qoidalari bo'yicha);
elseโ shart false bo'lgandagi holat;else ifโ bir nechta variant;- Ternar
shart ? a : bโ qisqa, qiymat qaytarish uchun ideal; - Ichma-ich ternar mumkin, lekin uni oddiy holatlar bilan cheklang.