JavaScript
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Змінні і типи
      • Знайомство з JavaScript
      • Інструменти розробника
      • Підключення скрипту
      • Основи синтаксису
      • Змінні і типи
      • Взаємодія з користувачем
      • Основні оператори
      • Числа
      • Рядки
      • Логічні операції
    • 2️⃣Розгалудження і цикли
      • Розгалуження
      • Тернарний оператор
      • Інструкція switch
      • Область видимості
      • Цикли
    • 3️⃣Масиви
      • Масиви
      • Ітерація по масиву
      • Присвоєння за посиланням і значенням
      • Методи масиву
    • 4️⃣Функції
      • Функції
      • Стек викликів
    • 5️⃣Обʼєкти
      • Обʼєкти
      • Перебирання обʼєкта
      • Масив обʼєктів
      • Операції spread і rest
      • Деструктуризація обʼєктів
      • Деструктуризація масивів
      • Паттерн "обʼєкт параметрів"
    • 6️⃣Колбек-функції, стрілкові функції, перебір масиву
      • Колбек-функції
      • Метод forEach
      • Стрілкові функції
      • Підходи до написання коду
      • Чисті функції
    • 7️⃣Перебираючі методи масивів
      • Перебираючі методи масиву
      • Метод map()
      • Метод flatMap()
      • Метод filter()
      • Метод find()
      • Метод findIndex()
      • Методи every() і some()
      • Метод reduce()
      • Метод sort()
      • Ланцюжки методів
    • 8️⃣Контекст, прототипи та класи
      • Контекст виконання функції
      • Правила визначення this
      • Методи функцій
      • Об'єктно-орієнтоване програмування
      • Прототипне наслідування
    • Класи
  • 👷Практика
    • 👷Практика
    • Page 1
  • Про мене
    • Про мене
Powered by GitBook
On this page
  • Приведення до числа​
  • Методи Number.parseInt() і Number.parseFloat()​
  • Перевірка на число​
  • Додавання чисел з рухомою крапкою (комою)​
  • Клас Math​
  • Math.floor()
  • Math.ceil()
  • Math.round()
  • Math.max()
  • Math.min()
  • Math.pow()
  • Math.random()
  1. Теорія
  2. Змінні і типи

Числа

PreviousОсновні операториNextРядки

Last updated 1 year ago

Усі числа в JavaScript (цілі і дробові), мають тип Number і їх можна записувати не тільки в десятковій системі числення.

Приведення до числа

Більшість арифметичних операцій і математичних функцій перетворюють значення у число автоматично. Але для того, щоб це зробити явно, використовують функцію Number(val), де val - це те, що потрібно привести до числа.

const value = "12";
console.log(Number(value)); // 12
console.log(typeof Number(value)); // "number"

Якщо значення привести до числа неможливо, то функція поверне спеціальне числове значення NaN (Not a Number). Аналогічним чином відбувається перетворення і в інших математичних операторах і функціях.

const value = "string";
console.log(Number(value)); // NaN
console.log(typeof Number(value)); // "number"

Методи Number.parseInt() і Number.parseFloat()

Перетворюють рядок в число символ за символом, поки це можливо. У разі виникнення помилки (тобто якщо символ рядка не можна перетворити в цифру), то парсинг припиняється і повертається підсумкове число.

Метод Number.parseInt() парсить з рядка ціле число.

console.log(Number.parseInt("7%")); // 7
console.log(Number.parseInt("32qwerty12")); // 32
console.log(Number.parseInt("32.13qwerty12")); // 32
console.log(Number.parseInt("qwetry")); // NaN

Метод Number.parseFloat() парсить з рядка число з крапкою.

console.log(Number.parseFloat("7%")); // 7
console.log(Number.parseFloat("32qwerty12")); // 32
console.log(Number.parseFloat("32.13qwerty12")); // 32.13
console.log(Number.parseFloat("qwerty")); // NaN

Бувають ситуації, коли потрібно перевірити чи є числом певна змінна. Для цього використовують метод Number.isNaN(val). Цей метод перевіряє чи сутність val є NaN.

Повертає значення:

  • true - якщо значення val - NaN (тобто це НЕ число)

  • false - якщо значення val - не NaN (тобто це число)

Для всіх значень val, крім NaN, при передачі в Number.isNaN(val) поверне false. Цей метод не перетворює val в число, а просто виконує перевірку на NaN.

const validNumber = Number("10"); // 10
console.log(Number.isNaN(validNumber)); // false

const invalidNumber = Number("qwerty"); // NaN
console.log(Number.isNaN(invalidNumber)); // true

Компʼютер при розрахунках оперує двійковою системою, тому при розрахункових операціях із дробовими числами в десятковій системі може виникати дуже незначна, але похибка. Це особливість мови програмування JavaScript. Так, наприклад 0.1 + 0.2 не дорівнює 0.3.

Результат буде трохи більшим, бо машина розраховує у двійковій системі числення. Число 0.1 у двійковій системі - це нескінченний дріб, бо 1 не ділиться на 10 в цій системі числення. Двійкове значення нескінченних дробів зберігається тільки до певного знаку, тому виникає неточність. При додаванні 0.1 і 0.2, додаються дві неточності, виходить незначна, але все-таки помилка в обчисленнях.

console.log(0.1 + 0.2 === 0.3); // false
console.log(0.1 + 0.2); // 0.30000000000000004

Є декілька способів розв'язувати цю проблему.

1.Можна зробити операнди цілими, помноживши на N, додати, а потім результат поділити також на N.

console.log(0.17 + 0.24); // 0.41000000000000003
console.log((0.17 * 100 + 0.24 * 100) / 100); // 0.41

2.Можна додати операнди, а результат скоротити до певного знаку після коми за допомогою методу toFixed().

console.log(0.17 + 0.24); // 0.41000000000000003
console.log((0.17 + 0.24).toFixed(2)); // 0.41

Math - один із вбудованих класів, який надає набір методів для роботи з числами. Їх велика кількість. Варто запамʼятати найбільш вживані.

Math.floor()

Math.floor(num) - повертає найменше ціле число, менше, або яке дорівнює зазначеному числу

console.log(Math.floor(1.7)); // 1

Math.ceil()

Math.ceil(num) - повертає найбільше ціле число, більше, або яке дорівнює зазначеному числу.

console.log(Math.ceil(1.2)); // 2

Math.round()

Math.round(num) - повертає значення числа, округленого до найближчого цілого

console.log(Math.round(1.2)); // 1
console.log(Math.round(1.5)); // 2

Math.max()

Math.max(num1, num2, ...) - повертає найбільше ціле число з набору

console.log(Math.max(20, 10, 50, 40)); // 50

Math.min()

Math.min(num1, num2, ...) - повертає найменше ціле число з набору

console.log(Math.min(20, 10, 50, 40)); // 10

Math.pow()

Math.pow(base, exponent) - піднесення до степеня

console.log(Math.pow(2, 4)); // 16

Math.random()

Math.random() - повертає псевдовипадкове число в діапазоні [0, 1)

console.log(Math.random()); // випадкове число між 0 і 1
console.log(Math.random() * (10 - 1) + 1); // псевдовипадкове число від 1 до 10

Перевірка на число

Додавання чисел з рухомою крапкою (комою)

Клас Math

📚
1️⃣
​
​
​
​
​