Перейти до основного вмісту
Модуль 2 · Урок 3 із 47/32 у курсі~10 min
Модульні уроки (3/4)

Числа і математика

У JavaScript є лише один числовий тип: number. Обидва цілі числа і десяткові коми (плаваюча кома) живуть там. Немає окремого int / float як в інших мовах.

JS
typeof 42; // 'number'
typeof 3.14; // 'number'
typeof -0.001; // 'number'
typeof Infinity; // 'number'   ← Infinity is a special number
typeof NaN; // 'number'   ← even "Not a Number" is a number (!)

Глобальний об’єкт Math

Math не є функцією: це об’єкт із корисними методами та константи. Ви не створюєте його екземпляр, ви використовуєте його безпосередньо:

JS
Math.min(3, 1, 7); // 1
Math.max(3, 1, 7); // 7
Math.abs(-5); // 5
Math.round(4.5); // 5
Math.floor(4.9); // 4   (always rounds down)
Math.ceil(4.1); // 5   (always rounds up)
Math.sqrt(16); // 4
Math.pow(2, 10); // 1024   (equivalent to 2 ** 10)
Math.PI; // 3.141592653589793

Випадкові числа

Math.random() повертає десятковий знак між 0 (включено) і 1 (виключено). Щоб отримати ціле число в діапазоні, ви використовуєте невелику формулу:

JS
// Random integer between 0 and 9
Math.floor(Math.random() * 10);

// Random integer between 1 and 6 (a six-sided die)
Math.floor(Math.random() * 6) + 1;

Болі десяткових знаків (з плаваючою комою)

JS використовує 64-розрядне представлення IEEE-754, яким користуються майже всі мови. Це двійкове представлення, тому деякі десяткові числа не можуть бути такими представлено точно:

JS
0.1 + 0.2; // 0.30000000000000004 (!)
0.1 + 0.2 === 0.3; // false

Стандартне рішення: кругле з toFixed(n) (що повертає рядок) або використовуйте цілі числа в центах/тисячних при роботі з грошима:

JS
(0.1 + 0.2).toFixed(2); // '0.30' (string)
Number((0.1 + 0.2).toFixed(2)); // 0.3 (number)

Спробуйте

вправи#js.m2.l3.e1
Спроби: 0Завантаження…

Обчисліть площу кола з радіусом `r = 5`, округленим до двох знаків після коми, як `число`. Для `r=5` очікується 78,54.

Завантаження редактора…
Показати підказку

Math.PI для пі, ** для піднесення до степеня; .toFixed(2) для округлення, Number(...) для перетворення назад у число.

Рішення доступне після 3 спроб

Повторна вправа

вправи#js.m2.l3.e2
Спроби: 0Завантаження…

Дано три числа 12, 7, 23, повернути як останній вираз різницю між max і min (тобто 16).

Завантаження редактора…
Показати підказку

Math.max і Math.min приймають кілька аргументів, розділених комами.

Рішення доступне після 3 спроб