JavaScript switch Bayonoti
switch bayonoti shartga qarab bir nechta kod bloklaridan birini tanlash uchun ishlatiladi.
U ifoda natijasini turli "case" (holat) lardan biri bilan solishtiradi va mos keladigan kod blokini ishga tushiradi. switch ko'pincha ko'p sonli if...else if...else bayonotlariga qaraganda o'qish uchun qulayroq alternativ hisoblanadi.
Sintaksisi
Sintaksis
switch(ifoda) {
case x:
// kod bloki
break;
case y:
// kod bloki
break;
default:
// mos keluvchi holat topilmasa, shu blok ishlaydi
}U qanday ishlaydi:
switchichidagi ifoda bir marta hisoblanadi.- Ifoda qiymati har bir
caseqiymati bilan solishtiriladi. - Agar moslik topilsa, unga tegishli kod bloki ishga tushadi.
- Agar moslik topilmasa, hech qanday kod ishlamaydi (agar
defaultbo'lmasa).
Misol
Hafta kunini aniqlash:
switch (new Date().getDay()) {
case 0:
day = "Yakshanba";
break;
case 1:
day = "Dushanba";
break;
case 2:
day = "Seshanba";
break;
case 3:
day = "Chorshanba";
break;
case 4:
day = "Payshanba";
break;
case 5:
day = "Juma";
break;
case 6:
day = "Shanba";
}Eslatma
getDay() metodi hafta kunini 0 dan 6 gacha bo'lgan son sifatida qaytaradi (Yakshanba=0, Dushanba=1, ...).
break kalit so'zi
JavaScript break so'ziga yetib kelganda, u switch blokidan chiqib ketadi. Bu switch ichidagi keyingi kodlar ijrosini to'xtatadi.
Oxirgi case uchun break qo'yish shart emas, chunki switch o'sha yerda o'zi tugaydi.
Diqqat
break kalit so'zi juda muhim. Agarda u qo'yilmasa, JavaScript moslik topilganidan keyin ham keyingi case bloklarini ham (hatto qiymat mos kelmasa ham) ishga tushiraveradi (bunga "fall-through" deyiladi).
default kalit so'zi
default kalit so'zi birorta ham mos keluvchi case topilmaganda ishlaydigan kod blokini belgilaydi. Uni ishlatish majburiy emas.
Misol
Agar bugun Shanba (6) ham, Yakshanba (0) ham bo'lmasa, umumiy xabar chiqarish:
switch (new Date().getDay()) {
case 6:
text = "Bugun Shanba";
break;
case 0:
text = "Bugun Yakshanba";
break;
default:
text = "Dam olish kunini intiqlik bilan kutamiz";
}default blokini har doim switch oxirida bo'lishi shart emas, lekin u boshqa joyda bo'lsa, uni ham albatta break bilan tugatishni unutmang.
Case bloklarini guruhlash
Ba'zan siz bir nechta case uchin bir xil kodni ishlatmoqchi bo'lishingiz mumkin:
Misol
switch (new Date().getDay()) {
case 4:
case 5:
text = "Tez orada dam olish kuni!";
break;
case 0:
case 6:
text = "Hozir dam olish kuni";
break;
default:
text = "Ish kunlari...";
}Qat'iy taqqoslash (Strict Comparison)
switch bayonoti qat'iy taqqoslash operatoridan (===) foydalanadi. Ya'ni, qiymatlarning nafaqat o'zi, balki turi ham bir xil bo'lishi shart.
Misol
Bu yerda x uchun hech qanday moslik topilmaydi, chunki matnli "0" sonli 0 ga teng emas.
let x = "0";
switch (x) {
case 0:
text = "O'chirildi";
break;
case 1:
text = "Yoqildi";
break;
default:
text = "Qiymat topilmadi";
}