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.)
Числа також можна виразити у таких літеральних формах, як 0b101
, 0o13
, 0x0A
. Дізнайтесь більше щодо лексичної граматики чисел тут.
Опис
При використанні в якості функції, 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
Специфікації
Підтримка веб-переглядачами
BCD tables only load in the browser
Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію https://github.com/mdn/browser-compat-data.
Див. також
NaN
Арифметичні оператори
- Глобальний об'єкт
Math
- Цілі числа з довільною точністю:
BigInt