Number

Об'єкт Number у JavaScript — це об'єкт-обгортка, що дозволяє працювати з числовими значеннями. Об'єкт Number створюється за допомогою конструктора Number(). Просте значення типу number створюється за допомогою функції Number().

Тип Number у JavaScript є 64-бітним значенням подвійної точності формату IEEE 754. У останніх реалізаціях JavaScript також підтримує цілі числа з довільною точністю за допомогою типу BigInt.

Синтаксис

new Number(value); 
var a = new Number('123'); // a === 123 is false
var b = Number('123'); // b === 123 is true
a instanceof Number; // is true
b instanceof Number; // is false

Параметри

value
Числове значення створюваного об'єкта.

Опис

Первинне використання для об'єкта Number:

  • Якщо аргумент не може бути перетворено на число, він повертає NaN;
  • Поза контекстом конструктора (тобто без оператора new) Number можна використовувати для перетворення типу.

Властивості

Number.EPSILON
Найменша можлива різниця між двома числами.
Number.MAX_SAFE_INTEGER
Найбільше безпечне ціле число в JavaScript (253 - 1).
Number.MAX_VALUE
Найбільше додатне число.
Number.MIN_SAFE_INTEGER
Найменше безпечне ціле число в JavaScript (-(253 - 1)).
Number.MIN_VALUE
Найменше додатне число — найближче до нуля (за винятком самого нуля) додатне число.
Number.NaN
Спеціальне значення "не число".
Number.NEGATIVE_INFINITY
Спеціальне значення, що передає від'ємну нескінченність; повертається при переповненні.
Number.POSITIVE_INFINITY
Спеціальне значення, що передає нескінченність; повертається при переповненні.
Number.prototype
Дозволяє додавати властивості до об'єкта Number.

Методи

Number.isNaN()
Визначає, чи є передане значення об'єктом NaN.
Number.isFinite()
Визначає, чи є передане значення скінченним числом.
Number.isInteger()
Визначає, чи є передане значення цілим числом.
Number.isSafeInteger()
Визначає, чи є передане значення безпечним цілим числом (число між -(253 - 1) та 253 - 1).
Number.toInteger()
Використовувався для оцінки переданого значення та перетворення його в ціле (або Infinity), але його видалено.
Number.parseFloat()
Вертає те саме значення, що й глобальна функція parseFloat().
Number.parseInt()
Вертає те саме значення, що й глобальна функція parseInt().

Екземпляри Number

Всі екземпляри Number успадковуються від Number.prototype. Якщо змінити прототип конструктора Number, це вплине на всі екземпляри Number

Методи

Number.prototype.toExponential()
Повертає рядок, що містить експоненціальний запис числа.
Number.prototype.toFixed()
Повертає рядок, що містить запис числа у форматі з нерухомою комою.
Number.prototype.toLocaleString()
Повертає рядок, що містить узалежнений від мови запис числа. Перекриває метод Object.prototype.toLocaleString().
Number.prototype.toPrecision()
Повертає рядок, що містить запис числа із зазначеною точністю у форматі з нерухомою комою чи експоненціальний.
Number.prototype.toSource()
Повертає рядок, що містить код мовою JavaScript, який створює об'єкт класу Number з відповідним значенням. Цей код можна використати для створення нового об'єкта. Перекриває метод Object.prototype.toSource().
Number.prototype.toString()
Повертає рядок, що містить числовий запис значення об'єкта в зазначеній системі числення. Перекриває метод Object.prototype.toString().
Number.prototype.valueOf()
Повертає просте числове значення об'єкта. Перекриває метод Object.prototype.valueOf().

Приклади

Використання об'єкта Number для присвоєння змінним числових величин

Наведений приклад використовує властивості об'єкта Number, щоб присвоїти кільком змінним числові значення:

var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;

Діапазон цілих чисел для Number

В наступному прикладі наведено найбільше та найменше значення, які можуть бути представлені об'єктом Number (за детальною інформацією звертайтесь до стандарту ECMAScript, розділ 6.1.6 Тип Number):

var biggestInt = Number.MAX_SAFE_INTEGER; //(253 - 1) => 9007199254740991;
var smallestInt = Number.MIN_SAFE_INTEGER;  //-(253 - 1) => -9007199254740991;

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

Використання Number для перетворення об'єкта Date

У наведеному прикладі об'єкт класу Date перетворюється на числове значення за допомогою функції Number:

var d = new Date('December 17, 1995 03:24:00');
console.log(Number(d));

Це виведе "819199440000".

Перетворення числових рядків та null на числа

Number('123')     // 123
Number('12.3')    // 12.3
Number('12.00')   // 12
Number('123e-1')  // 12.3
Number('')        // 0
Number(null)      // 0
Number('0x11')    // 17
Number('0b11')    // 3
Number('0o11')    // 9
Number('foo')     // NaN
Number('100a')    // NaN
Number('-Infinity') //-Infinity

Специфікації

Специфікація Статус Коментар
ECMAScript 1st Edition (ECMA-262) Standard Первинне визначення. Реалізовано у JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
The definition of 'Number' in that specification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Number' in that specification.
Standard

Додано нову властивість EPSILON та низку методів: isFinite, isInteger, isNaN, parseFloat, parseInt.

ECMAScript Latest Draft (ECMA-262)
The definition of 'Number' in that specification.
Draft

Підтримка веб-переглядачами

No compatibility data found. Please contribute data for "javascript.builtins.Number.Number" (depth: 1) to the MDN compatibility data repository.

Див. також