Математика ва муқоиса
Ин барои чӣ лозим аст
Қариб ҳар барнома чизеро ҳисоб мекунад: маблағи фармоиш, вақт то охири дарс, холҳо дар бозӣ, фоизи тахфиф. Ҳамчунин барномаҳо доимо муқоиса мекунанд: пул мерасад, парол дуруст аст, вақт тамом шуд. Дар ин мавзӯъ — ҳамаи абзорҳо барои ин.
Арифметика
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.
Хатоҳои маъмул
- Аз тақсим бутун интизор шудан.
7 / 2→3.5. Бутун лозим бошад —Math.floor(7 / 2). =ба ҷойи===.if (x = 5)муқоиса намекунад, балки мебахшад. Муқоиса —===.==ба ҷойи===.0 == ""→true.===нависед.- Яклухткунӣ бо функсияи нодуруст.
Math.round— мувофиқи қоидаҳо,Math.floor— ба поён,Math.ceil— ба боло. Барои «чанд қуттӣ лозим» —ceil, барои «чанд соати пурра» —floor. 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) → сатр |
| Муқоиса | > < >= <= === !== |