Har kuni ishlatadigan operatorlaringiz
Operatorlar qiymatlarni birlashtiradi yoki taqqoslaydi. Keng tarqalgan guruhlar:
// arithmetic
5 + 2 // 7
5 % 2 // 1 → remainder (great for "is it even?": n % 2 === 0)
2 ** 3 // 8 → exponent
// comparison — always returns a boolean
3 < 5 // true
5 >= 5 // true
"a" === "a" // true
// logical
true && false // false → AND: both must be true
true || false // true → OR: at least one true
!true // false → NOT: flips it% (modulo/qoldiq) operatori intervyularda doimo uchraydi — u orqali son juftligini tekshirasiz, diapazon bo'ylab aylanasiz yoki har N-chi elementni guruhlaysiz.
Truthy va falsy
JavaScriptdagi har bir qiymat boolean kontekstida (masalan, if ichida) ishlatilganda yo "truthy", yo "falsy" bo'ladi. Falsy ro'yxatini yodlab oling — qolgan hamma narsa truthy:
false, 0, "", null, undefined, NaNDemak, bo'sh satr falsy, lekin "0" (satr) va [] (bo'sh massiv) truthy:
if ("") { } // skipped — empty string is falsy
if ([]) { } // runs — empty array is truthy!Ana shu bo'sh massiv nozikligi ko'p odamni chalg'itadi. Massiv va obyektlar bo'sh bo'lsa ham, doimo truthy.
if / else if / else
Boshqaruv oqimining asosiy ishchisi:
const score = 82;
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else {
grade = "C";
}Shartlar yuqoridan pastga qarab tekshiriladi; birinchi truthy bo'lgani g'olib chiqadi va qolganlari o'tkazib yuboriladi.
switch
Bitta qiymatni ko'plab qat'iy variantlar bilan taqqoslayotganingizda, switch uzun if/else zanjiridan ko'ra tozaroq o'qiladi:
switch (day) {
case "sat":
case "sun":
type = "weekend";
break; // don't forget break!
default:
type = "weekday";
}switch qat'iy (===) taqqoslashdan foydalanadi. break muhim: usiz ijro navbatdagi case ichiga "o'tib ketadi" (fall through) — ba'zan foydali (yuqoridagi "sat" va "sun" ni ustma-ust qo'yish kabi), lekin odatda bu xato.
Ternar operator
Oddiy yo-u-yo bu holat uchun condition ? a : b ternari qiymat qaytaradigan ixcham ifodadir:
const label = count === 1 ? "item" : "items";
const fee = isMember ? 0 : 10;U ifoda bo'lgani uchun, uni to'g'ridan-to'g'ri shablon satriga yoki return ichiga qo'yishingiz mumkin. Ternarlarni qisqa saqlang — ularni bir-birining ichiga joylash tezda o'qib bo'lmaydigan holga keladi, va o'sha nuqtada oddiy if aniqroq bo'ladi.
&& va || qisqartma sifatida
Mantiqiy operatorlar shunchaki true/false qaytarmaydi — ular haqiqiy qiymatlardan birini qaytaradi, bu esa qulay qisqartmalarni beradi:
const name = input || "Anonymous"; // fallback if input is falsy
isLoggedIn && showDashboard(); // only call if truthyZamonaviy kod ko'pincha standart qiymatlar uchun || o'rniga ?? (nullish coalescing) ni afzal ko'radi, chunki ?? faqat null/undefined bo'lganda zaxira qiymatga qaytadi — 0 yoki "" da emas:
const qty = userQty ?? 1; // keeps 0 if the user typed 0Intervyu maslahatlari
- Falsy ro'yxatini yoddan ayting;
[]va{}truthy ekanini eslatib o'ting. - Juft/toq va aylanish uchun
%dan foydalaning — juda keng tarqalgan usul. switchgabreakkerakligini va u===dan foydalanishini biling.??qachon||dan ustun kelishini tushuntiring (u0va""ni saqlaydi).
Muhokama
2 izoh
Muhokamada qatnashish uchun tizimga kiring.
KirishКогда уже видна кнопка "Отметить как прочитанное" почему то нужно доскролить страницу?
O'qilgan deb belgilashda muommoga duch keldim, mavzuni to'liq o'qib chiqdim(5-6 daqiqada), ammo buttonni bosish uchun kamida 3 daqiqa o'qing degan ogohlantirish chiqdi.
Assalomu alaykum, hozir sinab ko'rdim feature belgilangan tartibda ishlayapti, nazarimda mavzu uchun talab qilingan vaqt ajratmagan bo'lsangiz kerak. Qaytadan urinib ko'ring. Bu feature mavzularni shunchaki check qilib ketishni oldini olish va mavzuga ko'proq fokus qaratish uchun. Feedback uchun rahmat!