JavaScript'da shart operatorlari: if, else, else if, switch/case, fall-through xatosi, truthy va falsy qiymatlar hamda amaliy mashq va testlar.
Dastur ba'zi holatlarda turli shartlarga qarab boshqacha harakat qilishi kerak. Bu bobda if, else, switch kabi shart operatorlarini o'rganamiz.
if — biror shart to'g'ri (true) bo'lsa, kod blokini ishga tushiradi.
Dastur har doim bir xil natija bermasligi kerak — foydalanuvchi kiritgan ma'lumot yoki holatga qarab boshqacha javob berishi kerak.
🚦 Svetofor: agar chiroq yashil bo'lsa — yuraverasiz, aks holda to'xtaysiz.
script.jsJavaScriptlet age = 20;if (age >= 18) {console.log("Kirish ruxsat etilgan");} else {console.log("Kirish taqiqlangan");}
age >= 18 sharti tekshiriladi.true bo'lsa — if blok ichidagi kod ishga tushadi.false bo'lsa — else blok ishga tushadi.Bir nechta shartni ketma-ket tekshirish uchun ishlatiladi.
script.jsJavaScriptlet score = 75;if (score >= 90) {console.log("A");} else if (score >= 75) {console.log("B");} else if (score >= 60) {console.log("C");} else {console.log("F");}
Shartlar yuqoridan pastga qarab tekshiriladi. Birinchi true bo'lgan shart ishga tushadi, qolganlari e'tiborga olinmaydi.
⚠️ Common Mistake
Shartlarni noto'g'ri tartibda yozish xato natijaga olib kelishi mumkin.
❌ Yomon:
script.jsJavaScriptif (score >= 60) { ... }else if (score >= 90) { ... } // Bu qatorga hech qachon yetib bo'lmaydi
Bitta variable'ni bir nechta aniq qiymat bilan solishtirish kerak bo'lsa, switch ishlatiladi.
script.jsJavaScriptlet day = "Dushanba";switch (day) {case "Dushanba":console.log("Hafta boshlandi");break;case "Juma":console.log("Hafta oxiri yaqin");break;default:console.log("Oddiy kun");}
day qiymati har bir case bilan solishtiriladi.case ishga tushadi.break keyingi case'larga o'tishni to'xtatadi.default ishga tushadi.⚠️ Common Mistake
break yozishni unutish — bu eng ko'p uchraydigan switch xatosi. break bo'lmasa, keyingi case'lar ham ishga tushaveradi ("fall-through").
| Holat | Tavsiya etiladi |
|---|---|
| 2-3 ta oddiy shart | if / else |
| Bitta variable, ko'p aniq qiymat | switch |
Murakkab shartlar (&&, ||) | if / else |
JavaScript'da har bir qiymat shart tekshirilganda avtomatik true yoki falsega aylanadi.
| Falsy qiymatlar | Truthy qiymatlar |
|---|---|
false | true |
0 | Har qanday musbat/manfiy son |
"" (bo'sh string) | "0", " " (bo'sh bo'lmagan string) |
null | {}, [] (bo'sh object/array ham) |
undefined | Funktsiyalar |
NaN | — |
script.jsJavaScriptif ("") {console.log("Bu ishlamaydi");}if ("salom") {console.log("Bu ishlaydi"); // shu chiqadi}
💡 Key Idea
Bo'sh array [] va bo'sh object {} — ikkalasi ham truthy hisoblanadi, garchi "bo'sh" ko'rinsa ham.
Task:
Son musbat, manfiy yoki nolga tengligini aniqlaydigan kod yozing.
Required Concepts:
if / else if / elseHint:
Uchta holatni tekshiring: > 0, < 0, === 0.
Task:
Foydalanuvchidan hafta kunining raqamini (1-7) oling va switch yordamida kun nomini chiqaring.
Required Concepts:
switchdefault caseHint:
Noto'g'ri raqam kiritilsa, default orqali "Noto'g'ri kun" chiqsin.
Task:
Uchta parametr (username, password, age) asosida login tekshiruvchi funksiya yozing: username bo'sh bo'lmasligi, password kamida 6 belgidan iborat bo'lishi va age 18 dan katta bo'lishi kerak. Barcha shartlar true bo'lsagina "Ruxsat berildi" chiqsin.
Required Concepts:
if / elseHint:
&& operatoridan foydalaning.
script.jsJavaScriptlet value = "0";if (value) {console.log("Truthy");} else {console.log("Falsy");}
🧠 Think first! Javobni ko'rishdan oldin kamida 30 soniya o'ylang.
<details> <summary>Answer</summary> "Truthy"Why?
"0" — bu bo'sh bo'lmagan string, shuning uchun u truthy hisoblanadi. Faqat son sifatidagi 0 falsy bo'ladi, "0" string sifatida emas.
Quyidagi kodda muammo bor:
script.jsJavaScriptlet temperature = 25;if (temperature > 30) {console.log("Issiq");} else if (temperature > 20) {console.log("Salqin");} else if (temperature > 25) {console.log("Iliq");}
Your Task:
Yechim: Shartlarni kattadan kichikka tartiblash kerak:
</details>script.jsJavaScriptlet temperature = 25;if (temperature > 30) {console.log("Issiq");} else if (temperature > 25) {console.log("Iliq");} else if (temperature > 20) {console.log("Salqin");}
if / else — asosiy shart tekshirish usuli.else if — bir nechta shartni ketma-ket tekshirish.switch — bitta qiymatni ko'p variant bilan solishtirish.switchda break yozishni unutmang.false, 0, "", null, undefined, NaN.if/else, oddiy solishtirish uchun switch afzal.script.jsJavaScriptif (shart) {// kod} else if (boshqaShart) {// kod} else {// kod}switch (qiymat) {case 1:// kodbreak;default:// kod}
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 3 ta yechildi (kamida 75% kerak)
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: