Конструктор Number()
Базовая поддержка Широко доступно
Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Конструктор Number() создаёт объекты Number. При вызове в качестве функции он возвращает примитивные значения типа Number.
Синтаксис
new Number(value) Number(value)
Примечание: Number() может вызываться как с new, так и без него, но с разными эффектами. См. Возвращаемое значение.
Параметры
-
value - Числовое значение создаваемого объекта.
Возвращаемое значение
Когда Number() вызывается как функция (без new), он возвращает value, приведённое к числовому примитиву. В частности, значения BigInt конвертируются в числа вместо того, чтобы вызывать исключение. Если value отсутствует, оно становится 0.
Когда Number() вызывается как конструктор (с new), он использует описанный выше процесс приведения и возвращает обёрнутый объект Number, который не является примитивом.
Предупреждение: Вы редко должны использовать Number как конструктор.
Примеры
Создание объектов Number
const a = new Number("123"); // a === 123 is false
const b = Number("123"); // b === 123 is true
a instanceof Number; // is true
b instanceof Number; // is false
typeof a; // "object"
typeof b; // "number"
Использование Number() для преобразования BigInt в число
Number() — это единственный случай, когда BigInt может быть преобразован в число без вызова исключения, поскольку это очень явно задано.
+1n; // TypeError: Cannot convert a BigInt value to a number 0 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
Number(1n); // 1
Обратите внимание, что это может привести к потере точности, если BigInt слишком велико, чтобы быть безопасно представленным.
BigInt(Number(2n ** 54n + 1n)) === 2n ** 54n + 1n; // false
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
Number |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
См. также
- Полифилл современного поведения
Number(с поддержкой двоичных и восьмеричных литералов) вcore-js NaNMathBigInt
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/Number