25 август 2025

Shartli operatorlar: if, '?'

Ba’zan, biz har xil sharoitlarda har xil harakatlarni bajarishimiz kerak.

Buning uchun if ifodasidan va “savol belgisi” operatori deb yuritiladigan uchlik operatoridan soddalik uchun foydalanamiz ?.

“If” ifodasi

If ifodasi shartni baholaydi va agar natijaning natijasi true bo’lsa, kod blokini bajaradi.

Masalan:

let year = prompt('ECMAScript-2015 spetsifikatsiyasi qaysi yilda nashr etilgan??', '');

if (year == 2015) alert( 'Siz haqsiz!' );

Yuqoridagi misolda shart oddiy tenglikni tekshirish (yil == 2015), ammo u ancha murakkab bo’lishi mumkin.

Agar biz bir nechta ifodalarni bajarishni istasak, kod blokimizni jingalak qavs ichiga o’rashimiz kerak:

if (year == 2015) {
  alert("Bu to'g'ri!");
  alert("Siz juda aqllisiz!");
}

Kod blokingizni jingalak qo’shtirnoq bilan o’rashni tavsiya etamiz {} har safar if ifodadan foydalansangizda, bajarish uchun bitta ifoda bo’lsa ham. Bunday qilish,kodning o’qilishini yaxshilaydi.

Mantiqiy malumot turiga konvertatsiya

If(...) ifodasi uning qavsidagi ifodani baholaydi va natijani mantiqiy holatga o’tkazadi.

"type-convertions" maqolasi topilmadi bobidagi konvertatsiya qoidalarini eslaylik:

  • 0 raqami, bo’sh satr "",null, undefined va NaN barchasi false bo’ladi. Shu sababli ularni “soxta” qiymatlar deb atashadi.
  • Boshqa qiymatlar true bo’ladi, shuning uchun ular “aniq” deb nomlanadi.

Shunday qilib, ushbu shartdagi kod hech qachon bajarilmaydi:

if (0) { // 0 bu soxta
  ...
}

…va bu shart ichida – bu har doim to’g’ri bo’ladi:

if (1) { // 1 bu to'g'ri
  ...
}

Bundan tashqari, oldindan baholangan mantiqiy qiymatni if ga kiritishingiz mumkin, masalan:

let cond = (year == 2015); // tenglik rost yoki yolg'on qiymatini baholaydi

if (cond) {
  ...
}

“Else” ifodasi

If ifodasi ixtiyoriy else blokini o’z ichiga olishi mumkin. U shart noto’g’ri bo’lganida amalga oshiriladi.

Masalan:

let year = prompt(
  "ECMAScript-2015 spetsifikatsiyasi qaysi yilda nashr etilgan?",
  ""
);

if (year == 2015) {
  alert("Siz buni to'g'ri taxmin qildingiz!");
} else {
  alert("Qanday qilib shunday noto'g'ri bo'lishi mumkin?"); // 2015 yildan tashqari har qanday qiymat
}

Bir nechta shartlar: “else if”

Sometimes, we’d like to test several variants of a condition. The else if clause lets us do that. Ba’zan, biz shartning bir nechta variantlarini sinab ko’rmoqchi bolamiz. Else if ifodasi bunga imkon beradi.

Masalan:

let year = prompt(
  "ECMAScript-2015 spetsifikatsiyasi qaysi yilda nashr etilgan?",
  ""
);

if (year < 2015) {
  alert("Juda erta...");
} else if (year > 2015) {
  alert("Juda kech");
} else {
  alert("Aynan!");
}

Yuqoridagi kodda JavaScript avval year < 2015 ni tekshiradi. Agar bu noto’g’ri bo’lsa, u keyingi year > 2015 shartiga o’tadi. Agar bu ham noto’g’ri bo’lsa, u oxirgi alert ni ko’rsatadi.

Ko’proq else if bloklari bo’lishi mumkin. Oxirgi else ixtiyoriy.

<<<<<<< HEAD

Uchlik operator ‘?’

=======

Conditional operator ‘?’

fb4fc33a2234445808100ddc9f5e4dcec8b3d24c

Ba’zan, biz shartga qarab o’zgaruvchani tayinlashimiz kerak.

Masalan:

let accessAllowed;
let age = prompt('Yoshingiz nechida?', '');

if (age > 18) {
  accessAllowed = true;
} else {
  accessAllowed = false;
}

alert(accessAllowed);