Гузариш ба мундариҷа
Мавзӯи 5 аз 16
Назария

Шартҳо

Ин барои чӣ лозим аст

Барнома бояд интихоб карда тавонад: тугмаи «Даромадан» ё «Баромадан»-ро нишон диҳад, ба бозӣ роҳ диҳад ё бигӯяд «синну сол кам», тахфиф диҳад ё не. Барои ин шартҳо ҳастанд — коде, ки танҳо вақте иҷро мешавад, ки чизе дуруст бошад.

Масъалаҳо бо функсияҳо чӣ гуна сохта шудаанд

Аз ин мавзӯъ масъалаҳо чунин менамоянд: дар муҳаррир аллакай «тайёрӣ» — функсия ҳаст:

function sign(n) {

}

Функсия — порчаи номдори код аст. Додаҳо ба он тавассути параметр (дар ин ҷо n) медароянд, ва натиҷаро он бо калимаи return медиҳад. Санҷиш худаш функсияро бо ададҳои гуногун даъват мекунад, масалан sign(5) ва sign(-2), ва муқоиса мекунад, ки он чӣ баргардонд. Вазифаи шумо — навиштани код дар дохили қавсҳои фигурӣ. Функсияҳоро муфассал дар мавзӯи 7 мебинем, ҳоло ҳамин кифоя аст.

function double(n) {
  return n * 2;
}
console.log(double(4));

Натиҷа:

8

if — «агар»

const temperature = 30;
if (temperature > 25) {
  console.log("Гарм аст! Об гиред.");
}
console.log("Рӯзи хуш");

Натиҷа:

Гарм аст! Об гиред.
Рӯзи хуш

Дар қавсҳои доиравӣ — шарт. Агар он true бошад, блок дар қавсҳои фигурӣ иҷро мешавад. Агар false бошад — блок гузаронида мешавад ва барнома пеш меравад.

else — «вагарна» ва else if — «вагарна агар»

const score = 72;
if (score >= 90) {
  console.log("Аъло");
} else if (score >= 70) {
  console.log("Хуб");
} else if (score >= 50) {
  console.log("Қаноатбахш");
} else {
  console.log("Бояд беҳтар кард");
}

Натиҷа:

Хуб

Шартҳо аз боло ба поён санҷида мешаванд, ва танҳо шохаи аввалини мувофиқ иҷро мешавад. Гарчанде ки 72 >= 50 низ дуруст аст, ба ин санҷиш навбат намерасад. Бинобар ин тартиб муҳим аст.

return функсияро қатъ мекунад

Дар дохили функсия return дарҳол натиҷаро медиҳад ва аз он мебарояд. Бинобар ин else-ро баъд аз return навиштан шарт нест:

function canVote(age) {
  if (age >= 18) return "ҳа";
  return "не";
}
console.log(canVote(20), canVote(15));

Натиҷа:

ҳа не

Агар дар блок як фармон бошад, қавсҳои фигуриро партофтан мумкин аст, мисли ин ҷо. Вале вақте ки фармонҳо якчандтоанд, қавсҳо ҳатмӣ мебошанд.

Операторҳои мантиқӣ

Оператор Маъно Мисол
&& ВА — ҳарду шарт дуруст age >= 18 && hasTicket
|| Ё — ақаллан яке дуруст isAdmin || isOwner
! НЕ — чаппа мекунад !isLoggedIn
const age = 20;
const hasTicket = true;
console.log(age >= 18 && hasTicket); // true
console.log(age < 12 || age > 65);   // false
console.log(!hasTicket);             // false

Бо қавсҳо гурӯҳбандӣ кардан мумкин аст: (a && b) || c.

Оператори сеҷониба ? :

Навишти кӯтоҳи «агар-вагарна», ки қимат бармегардонад:

const age = 16;
const status = age >= 18 ? "калонсол" : "наврас";
console.log(status);

Натиҷа:

наврас

Чунин хонда мешавад: «шарт ? қимат-агар-ҳа : қимат-агар-не». Барои интихоби оддӣ аз ду вариант қулай аст; барои мантиқи мураккаб if беҳтар аст.

Қимати пешфарз: ?? ва ||

const nickname = null;
console.log(nickname ?? "Меҳмон"); // Меҳмон

a ?? b b-ро танҳо вақте бармегардонад, ки a — null ё undefined бошад. Вале a || b b-ро барои ҳар a-и дурӯғин бармегардонад, аз ҷумла 0 ва "". Бинобар ин барои ададҳо ?? бехатартар аст: 0 ?? 10 → 0, вале 0 || 10 → 10.

switch — интихоб аз рӯи қимат

const day = "sat";
switch (day) {
  case "sat":
  case "sun":
    console.log("Рӯзи истироҳат");
    break;
  case "mon":
    console.log("Душанбе — рӯзи вазнин");
    break;
  default:
    console.log("Рӯзи корӣ");
}

Натиҷа:

Рӯзи истироҳат

switch қиматро бо ҳар case қатъиян (===) муқоиса мекунад. break ҳатмист — бе он иҷро ба case-и навбатӣ «меафтад». default вақте кор мекунад, ки ҳеҷ чиз мувофиқ наомад.

Дар дохил чӣ гуна кор мекунад

Шарт дар if ҳатман true/false нест — JavaScript худаш онро мувофиқи қоидаи қиматҳои «дурӯғин» ба мантиқӣ табдил медиҳад: 0, "", null, undefined, NaN — дурӯғ, боқӣ — ҳақиқат. Бинобар ин if (name) маънои «агар ном холӣ набошад»-ро дорад. Ва && ва || танбалона ҳисоб мешаванд: агар ҷавоб аз қисми аввал маълум бошад (false && … ё true || …), қисми дуюм ҳатто иҷро намешавад.

Хатоҳои маъмул

  1. = ба ҷойи ===. if (x = 5) 5-ро мебахшад ва ҳамеша ҳақиқӣ аст. if (x === 5) нависед.
  2. Тартиби нодурусти else if. Агар аввал score >= 50-ро санҷед, баҳои «Аъло» ҳеҷ гоҳ дода намешавад. Аз шартҳои аз ҳама сахт сар кунед.
  3. Муқоисаи дукарата мисли математика. 7 <= age <= 17 дар JS нодуруст кор мекунад. Лозим аст age >= 7 && age <= 17.
  4. return фаромӯш шуд. Функсия бе return undefined бармегардонад — санҷиш нишон медиҳад, ки undefined гирифта шуд.
  5. break дар switch фаромӯш шуд. Якчанд шоха паси ҳам иҷро мешаванд.

Ёддошт

Чӣ Чӣ тавр
Агар if (шарт) { … }
Вагарна агар / вагарна else if (…) { … } else { … }
ВА / Ё / НЕ &&, ||, !
Сеҷониба шарт ? ҳа : не
Пешфарз x ?? "захиравӣ"
Интихоб аз рӯи қимат switch (x) { case …: …; break; default: … }
Баргардондан аз функсия return қимат;

Аломати адад

Осон+10 XP

Функсияи sign(n)-ро анҷом диҳед: он бояд сатрро баргардонад

  • "positive", агар n аз сифр калон бошад;
  • "negative", агар аз сифр хурд бошад;
  • "zero", агар n ба сифр баробар бошад.
sign(5)   → "positive"
sign(-2)  → "negative"
sign(0)   → "zero"

Барои ҳал кардани масъалаҳо коннекторро пайваст кун

Коди масъалаҳо дар компютери худат иҷро мешавад — ин аз браузер тезтар ва боэътимодтар аст. Барои ин барномаи ройгони коннектори CodeWithMe лозим аст. Онро як бор пайваст кардан кифоя аст.

Коннекторро дар ин компютер ҷустуҷӯ мекунем…

  1. 1
    Коннекторро барои системаи худ (Windows, macOS ё Linux) зеркашӣ кун.Зеркашии коннекторДар саҳифаи зеркашӣ файлеро интихоб кун, ки дар номаш системаи ту ҳаст, масалан windows-amd64.
  2. 2Онро иҷро кун ва ҷузвдонеро интихоб кун, ки ҳалҳоят дар он ҷо меистанд. Python ва Node.js-ро ӯ худаш ҳангоми зарурат ба он ҷо мегузорад.
  3. 3
    Дар поён рамзи 6-рақамаро ворид кун — он дар равзанаи коннектор навишта шудааст («Рамз барои сайти CodeWithMe»). Агар браузер дар бораи дастрасӣ ба шабакаи маҳаллӣ пурсад — иҷозат деҳ.

Коннектор кушода аст (рамзи манбаъ дар GitHub), танҳо дар компютери ту кор мекунад ва кодро танҳо пас аз ворид кардани рамзи пайвастшавӣ иҷро мекунад.