このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Number() コンストラクター
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Number() コンストラクターは、Number オブジェクトを生成します。関数として呼び出された場合は、数値型のプリミティブ値を返します。
In this article
構文
js
new Number(value)Number(value)引数
value作成するオブジェクトの数値です。
返値
Number() が関数として(new)呼び出された場合、引数を数値プリミティブに変換します。特に、長整数 (BigInt) の値は例外が発生させずに数値へ変換します。value が存在しない場合は0 になります。
Number() がコンストラクターとして(new 付きで)呼び出された場合は、上記の型変換処理を行ったうえで、Number オブジェクトにラッピングして返します。これはプリミティブではありません。
警告:コンストラクターとしてNumber を使用することはほとんどないはずです。
例
>Number オブジェクトの生成
js
const a = new Number("123"); // a === 123 は falseconst b = Number("123"); // b === 123 は truea instanceof Number; // は trueb instanceof Number; // は falsetypeof a; // "object"typeof b; // "number"Number() を使用して長整数を数値へ変換
Number() は、とても明示的なので、例外を発生させずに長整数 (BigInt) を数値に変換することができる唯一のケースです。
js
+1n; // TypeError: Cannot convert a BigInt value to a number0 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversionsjs
Number(1n); // 1なお、長整数が安全に表現するのに長すぎる場合、精度が下がることがあります。
js
BigInt(Number(2n ** 54n + 1n)) === 2n ** 54n + 1n; // false仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-number-constructor> |