НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

JS Підручник

JS Старт JS Інтро JS Установка JS Виведення JS Інструкції JS Синтаксис JS Коментарі JS Змінні JS Ключове слово Let JS Ключове слово Const JS Оператори JS Арифметичні JS Присвоєння JS Типи даних JS Функції JS Об’єкти JS Події JS Рядки JS Рядкові методи JS Рядковий пошук JS Рядкові шаблони JS Числа JS Числові методи JS Масиви JS Методи масиву JS Сортування масиву JS Ітерація масиву JS Масив Const JS Дати JS Формати дат JS Методи отримання дат JS Методи установки дат JS Математичні JS Рандомні JS Булеві JS Порівняння JS Умови JS Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Break & Continue JS Ітерації JS Набори JS Карти JS Typeof JS Перетворення типів JS Побітове JS Регулярні вирази JS Помилки JS Область дії JS Хостинг JS Use Strict JS Ключове слово this JS Функція стрілки JS Класи JS JSON JS Відладка JS Гід по стилю JS Кращі практики JS Поширені помилки JS Продуктивність JS Зарезервовані слова

JS Версії

JS Версії JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/Edge JS Історія

JS Об’єкти

Визначення об’єктів Властивості об’єкта Методи об’єкта Відображення об’єкта Доступ до об’єктів Конструктори об’єктів Прототипи об’єктів Ітеровані об’єкти Набори об’єктів Карти об’єктів Довідник об’єктів

JS Функції

Визначення функцій Параметри функції Звернення до функції Виклик функції Застосування функції Функція Bind Закриття функції

JS Класси

Вступ Наслідування класу Статичні методи

JS Асинхронний

Зворотні виклики Асинхронний Проміси Async/Await

JS HTML DOM

DOM Вступ DOM Методи DOM Документ DOM Елементи DOM HTML DOM Форми DOM CSS DOM Анімація DOM Події DOM Слухач подій DOM Навігація DOM Вузли DOM Колекції DOM Вузлові списки

JS Браузер BOM

JS Вікно JS Скрін JS Локація JS Історія JS Навігатор JS Спливаюче оповіщення JS Таймінг JS Кукі

JS Веб API

Веб API Вступ Веб-форми API Веб-історія API Веб-сховище API Веб-воркер API Веб-виборка API Веб-геолокація API

JS AJAX

AJAX Вступ AJAX XMLHttp AJAX Запит AJAX Відгук AJAX XML Файл AJAX PHP AJAX ASP AJAX База даних AJAX Додатки AJAX Приклади

JS JSON

JSON Вступ JSON Синтаксис JSON та XML JSON Типи даних JSON Аналіз JSON Stringify JSON Об’єкти JSON Масиви JSON Сервер JSON PHP JSON HTML JSON JSONP

JS та jQuery

jQuery Селектори jQuery HTML jQuery CSS jQuery DOM

JS Приклади

JS Приклади JS HTML DOM JS HTML Input JS HTML Об’єкти JS HTML Події JS Браузер JS Редактор JS Вправи JS Вікторина JS Сертифікат

JS Довідники

JavaScript Об’єкти HTML DOM Об’єкти

Place for your advertisement!
JavaScript. Уроки W3Schools для початківців українською мовою

En

JavaScript Числа


JavaScript має лише один тип чисел. Числа можна записувати як з десятковими дробами, так і без них.


Приклад

let x = 3.14;    // Число з десятковими знаками
let y = 3;       // Число без десяткових знаків
Спробуйте самі »

Дуже великі чи дуже малі числа можуть бути записані в науковому (експонентному) вигляді:

Приклад

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.00123
Спробуйте самі »

Числа JavaScript завжди є 64-розрядними з плаваючою комою

На відміну від багатьох інших мов програмування, JavaScript не визначає різні типи чисел, наприклад цілі, короткі, довгі, з плаваючою комою тощо.

Числа JavaScript завжди зберігаються як числа з плаваючою комою подвійної точності відповідно до міжнародного стандарту IEEE 754.

Цей формат зберігає числа в 64 бітах, де число (частка) зберігається в бітах від 0 до 51, експоненту в бітах з 52 по 62, а знак в бітах 63:

Значення (він же дроб/Мантиса) Експонента Знак
52 біта (0 - 51) 11 бітів (52 - 62) 1 біт (63)

Точність цілого числа

Цілі числа (числа без крапки або експоненти) мають точність до 15 цифр.

Приклад

let x = 999999999999999;   // x буде 999999999999999
let y = 9999999999999999;  // y буде 10000000000000000
Спробуйте самі »

Максимальна кількість десяткових знаків – 17.

Плаваюча точність

Арифметика з плаваючою комою не завжди точна на 100%:

let x = 0.2 + 0.1;
Спробуйте самі »

Розв’язати задачу вище допоможе множення та ділення:

let x = (0.2 * 10 + 0.1 * 10) / 10;
Спробуйте самі »

Додавання чисел і рядків

УВАГА!!

JavaScript використовує оператор + як для додавання, так і для конкатенації.

Числа додаються. Рядки об’єднуються.

Якщо додати два числа, результатом буде число:

Приклад

let x = 10;
let y = 20;
let z = x + y;
Спробуйте самі »

Якщо додати два рядки, результатом буде конкатенація рядків:

Приклад

let x = "10";
let y = "20";
let z = x + y;
Спробуйте самі »

Якщо додати число та рядок, результатом буде конкатенація рядка:

Приклад

let x = 10;
let y = "20";
let z = x + y;
Спробуйте самі »

Якщо додати рядок і число, результатом буде конкатенація рядка:

Приклад

let x = "10";
let y = 20;
let z = x + y;
Спробуйте самі »

Поширеною помилкою є очікування, що цей результат дорівнюватиме 30:

Приклад

let x = 10;
let y = 20;
let z = "Результат буде: " + x + y;
Спробуйте самі »

Поширеною помилкою є очікування такого результату: 102030:

Приклад

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;
Спробуйте самі »

Інтерпретатор JavaScript працює зліва направо.

Перші 10 + 20 додаються, оскільки x та y є числами.

Тоді 30 + "30" об’єднується, оскільки z є рядком.


Числові рядки

Рядки JavaScript можуть мати числовий вміст:

let x = 100;         // x є числом

let y = "100";       // y є рядком

JavaScript намагатиметься перетворити рядки на число під час усіх числових операцій:

Це спрацює:

let x = "100";
let y = "10";
let z = x / y;
Спробуйте самі »

Це теж спрацює:

let x = "100";
let y = "10";
let z = x * y;
Спробуйте самі »

І це спрацює:

let x = "100";
let y = "10";
let z = x - y;
Спробуйте самі »

Але це не спрацює:

let x = "100";
let y = "10";
let z = x + y;
Спробуйте самі »

В останньому прикладі JavaScript використовує оператор + для об’єднання рядків.


NaN - Not a Number (Не число)

NaN - це зарезервоване слово JavaScript, яке вказує на те, що число не є дійсним числом.

Спроба виконати арифметику з нечисловим рядком призведе до NaN (Not a Number):

Приклад

let x = 100 / "Apple";
Спробуйте самі »

Однак, якщо рядок містить числове значення, результатом буде число:

Приклад

let x = 100 / "10";
Спробуйте самі »

Ви можете використовувати глобальну функцію JavaScript isNaN(), щоб дізнатися, чи значення не є числом:

Приклад

let x = 100 / "Apple";
isNaN(x);
Спробуйте самі »

Слідкуйте за NaN. Якщо ви використовуєте NaN у математичній операції, результат також буде NaN:

Приклад

let x = NaN;
let y = 5;
let z = x + y;
Спробуйте самі »

Або результатом може бути конкатенація на зразок NaN5:

Приклад

let x = NaN;
let y = "5";
let z = x + y;
Спробуйте самі »

NaN є числом: typeof NaN поверне number:

Приклад

typeof NaN;
Спробуйте самі »

Infinity (Нескінченність)

Infinity (або -Infinity) – це значення, яке JavaScript поверне, якщо ви обчислите число за межами найбільшого можливого числа.

Приклад

let myNumber = 2;
// Виконувати до нескінченності
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}
Спробуйте самі »

Ділення на 0 (нуль) також породжує Infinity:

Приклад

let x =  2 / 0;
let y = -2 / 0;
Спробуйте самі »

Infinity є числом: typeof Infinity поверне number.

Приклад

typeof Infinity;
Спробуйте самі »

Шістнадцяткові числа

JavaScript інтерпретує числові константи як шістнадцяткові, якщо перед ними стоїть 0x.

Приклад

let x = 0xFF;
Спробуйте самі »

Ніколи не пишіть число з нулем на початку (наприклад, 07).
Деякі версії JavaScript інтерпретують числа як вісімкові, якщо вони написані з нулем на початку.

За замовчуванням JavaScript відображає числа як десяткові дроби з основою 10.

Але ви можете використовувати метод toString() для виведення чисел від основи 2 до основи 36.

Шістнадцятковим є основа 16. Десяткове число дорівнює основі 10. Вісімкова система основа 8. Двійковий код є основою 2.

Приклад

let myNumber = 32;
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(12);
myNumber.toString(10);
myNumber.toString(8);
myNumber.toString(2);
Спробуйте самі »

JavaScript Числа як об’єкти

Зазвичай числа JavaScript — це примітивні значення, створені з літералів:

let x = 123;

Але числа також можна визначити як об’єкти за допомогою ключового слова new:

let y = new Number(123);

Приклад

let x = 123;
let y = new Number(123);
Спробуйте самі »

Не створюйте Числові об’єкти.

Ключове слово new ускладнює код і сповільнює швидкість виконання.

Числові об’єкти можуть давати несподівані результати:

Під час використання оператора == x та y рівні:

let x = 500;
let y = new Number(500);
Спробуйте самі »

Під час використання оператора === x та y не рівні.

let x = 500;
let y = new Number(500);
Спробуйте самі »

Зверніть увагу на різницю між (x==y) та (x===y).

(x == y) true або false (правда чи неправда)?

let x = new Number(500);
let y = new Number(500);
Спробуйте самі »

(x === y) true або false (правда чи неправда)?

let x = new Number(500);
let y = new Number(500);
Спробуйте самі »

Порівняння двох об’єктів JavaScript завжди повертає false.

Повний довідник JavaScript Числа

Щоб отримати детальну інформацію про JavaScript числа, відвідайте:

Повний довідник JavaScript Числа на нашому сайті W3Schools українською.

Довідник містить описи та приклади всіх властивостей і методів Числа.