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

Математика ва муқоиса

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

Қариб ҳар барнома чизеро ҳисоб мекунад: маблағи фармоиш, вақт то охири дарс, холҳо дар бозӣ, фоизи тахфиф. Ҳамчунин барномаҳо доимо муқоиса мекунанд: пул мерасад, парол дуруст аст, вақт тамом шуд. Дар ин мавзӯъ — ҳамаи абзорҳо барои ин.

Арифметика

console.log(7 + 2);   // 9   ҷамъ
console.log(7 - 2);   // 5   тарҳ
console.log(7 * 2);   // 14  зарб
console.log(7 / 2);   // 3.5 тақсим — касрӣ!
console.log(7 % 2);   // 1   бақияи тақсим
console.log(2 ** 10); // 1024 дараҷа

Тартиби амалҳо — мисли математика: аввал **, баъд *, /, %, баъд + ва -. Қавсҳо тартибро иваз мекунанд: (2 + 3) * 4 → 20, вале 2 + 3 * 4 → 14.

Бақияи тақсим %

Оператори хеле фоиданок:

  • n % 2 === 0 — адад ҷуфт аст;
  • n % 10 — рақами охирини адад (1234 % 10 → 4);
  • total % 60 — чанд дақиқа аз соатҳои пурра зиёд мемонад.
const seconds = 200;
console.log(Math.floor(seconds / 60), "дақ", seconds % 60, "сон");

Натиҷа:

3 дақ 20 сон

Объекти Math

Math — маҷмӯи дарунсохти функсияҳои математикӣ:

console.log(Math.round(4.5));  // 5   мувофиқи қоидаҳо
console.log(Math.floor(4.9));  // 4   ба поён
console.log(Math.ceil(4.1));   // 5   ба боло
console.log(Math.trunc(-4.7)); // -4  қисми касриро партофтан
console.log(Math.max(3, 9, 2)); // 9
console.log(Math.min(3, 9, 2)); // 2
console.log(Math.abs(-8));     // 8   модул
console.log(Math.sqrt(81));    // 9   решаи квадратӣ
console.log(Math.random());    // тасодуфӣ аз 0 то 1, масалан 0.4271…

Адади бутуни тасодуфӣ аз 1 то 6 (кубик): Math.floor(Math.random() * 6) + 1.

Касрҳо ва дақиқӣ

console.log(0.1 + 0.2);

Натиҷа:

0.30000000000000004

Ин хатои JavaScript нест — қариб ҳамаи забонҳо касрҳоро ҳамин тавр нигоҳ медоранд. Барои пул бо дирам (бутун) ҳисоб мекунанд ё натиҷаро яклухт мекунанд: Number((0.1 + 0.2).toFixed(2)) → 0.3. Усули toFixed(2) сатр бо ду рақам баъд аз нуқта бармегардонад.

Муқоиса

Натиҷаи муқоиса — қимати мантиқии true ё false:

console.log(5 > 3);    // true
console.log(5 < 3);    // false
console.log(5 >= 5);   // true  калон ё баробар
console.log(4 <= 3);   // false хурд ё баробар
console.log(5 === 5);  // true  қатъиян баробар
console.log(5 !== 3);  // true  баробар нест

Қатъии === ва ғайриқатъии ==

console.log(5 === "5"); // false — навъҳои гуногун
console.log(5 == "5");  // true  — == аввал навъҳоро табдил медиҳад
console.log(0 == "");   // true  — ногаҳонӣ!

== кӯшиш мекунад қиматҳоро ба як навъ орад ва натиҷаҳои аҷиб медиҳад. Ҳамеша === ва !==-ро истифода баред.

Сатрҳо аз рӯи алифбо, дақиқтараш аз рӯи кодҳои аломатҳо муқоиса мешаванд: "apple" < "banana" → true, вале "Z" < "a" → true, зеро ҳарфҳои калон пеш аз хурдҳо меоянд.

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

Ҳамаи ададҳо дар JavaScript дар як формат — касри 64-битӣ (стандарти IEEE 754) нигоҳ дошта мешаванд. Бинобар ин 7 / 2 3.5 медиҳад, на 3, мисли баъзе забонҳои дигар, ва бинобар ин 0.1 + 0.2 каме ба 0.3 баробар нест: касри даҳии 0.1-ро дар системаи дуӣ аниқ навиштан мумкин нест, чӣ тавре ки 1/3-ро бо касри даҳӣ аниқ навиштан мумкин нест. Тақсим ба сифр барномаро намешиканад: 5 / 0 → Infinity.

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

  1. Аз тақсим бутун интизор шудан. 7 / 2 → 3.5. Бутун лозим бошад — Math.floor(7 / 2).
  2. = ба ҷойи ===. if (x = 5) муқоиса намекунад, балки мебахшад. Муқоиса — ===.
  3. == ба ҷойи ===. 0 == "" → true. === нависед.
  4. Яклухткунӣ бо функсияи нодуруст. Math.round — мувофиқи қоидаҳо, Math.floor — ба поён, Math.ceil — ба боло. Барои «чанд қуттӣ лозим» — ceil, барои «чанд соати пурра» — floor.
  5. toFixed сатр бармегардонад. (1.5).toFixed(2) + 1 → "1.501". Онро дар Number(...) печонед.

Ёддошт

Чӣ Чӣ тавр
Амалҳо + - * / % **
Бақия, ҷуфтӣ n % 2 === 0
Яклухткунӣ Math.round, Math.floor, Math.ceil, Math.trunc
Максимум / минимум Math.max(a, b), Math.min(a, b)
Модул, реша Math.abs(x), Math.sqrt(x)
Тасодуфӣ Math.random() — аз 0 то 1
Рақамҳо баъд аз нуқта x.toFixed(2) → сатр
Муқоиса > < >= <= === !==

Соатҳо ва дақиқаҳо

Осон+10 XP

Филм minutes = 135 дақиқа давом мекунад. Созед:

  • hours — чанд соати пурра (2);
  • rest — чанд дақиқа аз соатҳои пурра зиёд мемонад (15).

Аз рӯи minutes ҳисоб кунед, ҷавобҳоро дастӣ нанависед.

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

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

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

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

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