--- title: Number slug: Web/JavaScript/Reference/Global_Objects/Number tags: - Class - JavaScript - Number - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Number ---
Number
はプリミティブラッパーオブジェクトで、 37
や -9.25
のような数値を表現したり操作したりするために使用されます。
Number
コンストラクターは、数値を扱うための定数とメソッドを含んでいます。他の型の値は Number()
関数を用いて数値に変換することができます。
JavaScript の Number 型は IEEE 754 の倍精度 64ビットバイナリ形式であり、 Java や C# の double
のようなものです。これは小数点以下の数値を表すことができることを意味しますが、格納できる値にはいくつかの制限があります。 Number は小数点以下約 17 桁の精度しか保持できません。演算は丸め誤差の影響を受けます。 Number が保持できる最大の値は約1.8×10308です。それ以上の数値は、特殊な数値定数 {{jsxref("Infinity")}} に置き換えられます。
JavaScript コードにおける 37
のような数値リテラルは浮動小数点値であり、整数ではありません。日常的に使用される独立した整数型はありません。 (JavaScript は {{jsxref("BigInt")}} 型を持つようになりましたが、日常の利用で Number を置き換えるように設計されてはいません。 37
は Number であり、 BigInt ではありません。)
Number は 0b101
, 0o13
, 0x0A
のようなリテラル形式で表現することもできます。数値の字句文法はこちらを参照してください。
関数として使用された場合、 Number(value)
は文字列やその他の値を Number 型に変換します。値が変換できない場合は、 {{jsxref("NaN")}} を返します。
123 // 百二十三 123.0 // 同じ 123 === 123.0 // true
Number('123') // 数値 123 を返す Number('123') === 123 // true Number("unicorn") // NaN Number(undefined) // NaN
Number()
Number
値を生成します。253 - 1
) です。-(253 - 1)
) です。Number
オブジェクトへのプロパティの追加を許可します。NaN
であれば true
を返します。-(253 - 1)
から 253 - 1
の間) であれば true
を返します。以下の例では、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
オブジェクトで表現可能な最小の整数値と最大の整数値です (詳細は、ECMAScript 標準の 6.1.6 The Number Type の章を参照してください)。
const biggestInt = Number.MAX_SAFE_INTEGER // (253 - 1
) => 9007199254740991 const smallestInt = Number.MIN_SAFE_INTEGER // -(253 - 1
) => -9007199254740991
JSON にシリアライズされたデータを解析する場合、整数値がこの範囲を超えていると、 JSON パーサーがこの値を Number
型に変換したときに信頼できない値になります。
可能な回避策として、代わりに {{jsxref("String")}} を使用してください。
大きい数値は {{jsxref("BigInt")}} 型を用いて表すことができます。
以下の例は、 Number
を関数として用いて、{{jsxref("Date")}} オブジェクトを数値に変換します:
let d = new Date('December 17, 1995 03:24:00') console.log(Number(d))
これは、コンソールに "819199440000" を出力します。
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
仕様書 |
---|
{{SpecName('ESDraft', '#sec-number-objects', 'Number')}} |
{{Compat("javascript.builtins.Number")}}