Number

Об'єкт Number у JavaScript — це об'єкт-обгортка, що дозволяє працювати з числовими значеннями, такими як 37 чи -9.25.

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

Тип Number у JavaScript є 64-бітним значенням подвійної точності формату IEEE 754, як double у Java чи у C#. Це означає, що воно може відображати дробові значення, але існують певні обмеження на те, що воно може зберігати. Тип Number зберігає лише близько 17 десяткових знаків точності; числа підлягають округленню. Найбільше значення, яке може зберігати Number, дорівнює приблизно 1.8×10308. Числа за межами цього значення замінюються на спеціальну числову константу Infinity.

Числові літерали, такі як 37, у коді JavaScript є числами з рухомою крапкою, а не цілими числами. Не існує окремого цілочисельного типу у звичайному повсякденному використанні. (JavaScript нині має тип BigInt, але він був створений не того, щоб замінити Number у повсякденному використанні. 37 досі належить до типу Number, а не до BigInt.)

Числа також можна виразити у таких літеральних формах, як 0b1010o130x0A. Дізнайтесь більше щодо лексичної граматики чисел тут.

Опис

При використанні в якості функції, Number(value) перетворює рядок чи інше значення на тип Number. Якщо значення не можна перетворити, повертається NaN.

Літеральний синтаксис

123    // сто двадцять три
123.0  // те саме
123 === 123.0  // true

Синтаксис функції

Number('123')  // вертає число 123
Number('123') === 123  // true

Number("коник")    // NaN
Number(undefined)  // NaN

Конструктор

Number()
Створює нове значення 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.parseFloat()
Те саме, що й глобальна функція parseFloat().
Number.parseInt()
Те саме, що й глобальна функція parseInt().

Методи екземплярів

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

Приклади

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

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

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

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

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

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

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

Цьому можна запобігти використанням (рядків).

Більші числа можуть бути відображені за допомогою типу BigInt.

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

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

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

Це виведе 819199440000.

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

Number('123')     // 123
Number('123') === 123 /// true
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 (ECMA-262)
The definition of 'Number' in that specification.

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Number() constructorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support

Див. також