Об'єкт 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 |
Додано нову властивість |
ECMAScript Latest Draft (ECMA-262) The definition of 'Number' in that specification. |
Draft |
Підтримка веб-переглядачами
Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію https://github.com/mdn/browser-compat-data.
No compatibility data found. Please contribute data for "javascript.builtins.Number.Number" (depth: 1) to the MDN compatibility data repository.
Див. також
NaN
- Глобальний об'єкт
Math
- Цілі числа з довільною точністю:
BigInt
- Докладно про тип Number