Number

このロケールの翻訳が存在しないため、英語バージョンのコンテンツを表示しています。 Help us translate this article!

Number JavaScript オブジェクトは、数値に作用するラッパーオブジェクトです。Number オブジェクトは、Number() コンストラクタを用いて生成します。プリミティブ型オブジェクト numberNumber() 関数を用いて生成します。

JavaScript の Number 型は 倍精度 64 bit バイナリ形式 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.EPSILON
数値として表される 2 個の数の最小の差です。
Number.MAX_SAFE_INTEGER
JavaScript における確実な整数の最大値 (253 - 1)です。
Number.MAX_VALUE
表現可能な正の数の最大値です。
Number.MIN_SAFE_INTEGER
JavaScript における確実な整数の最小値 (-(253 - 1))です。
Number.MIN_VALUE
表現可能な正の数の最小値。0 に最も近い正の数です (0 ではありません)。
Number.NaN
"数値ではない" ("not a number") ことを表す特別な値です。
Number.NEGATIVE_INFINITY
負の無限大を表す特別な値です。オーバーフロー時に返されます。
Number.POSITIVE_INFINITY
無限大を表す特別な値です。オーバーフロー時に返されます。
Number.prototype
Number オブジェクトへのプロパティの追加を許可します。

メソッド

Number.isNaN()
渡された値が NaN であれば true を返します。
Number.isFinite()
渡された値が有限数であれば true を返します。
Number.isInteger()
渡された値が整数であれば true を返します。
Number.isSafeInteger()
渡された値が確実な範囲の整数 (-(253 - 1) から 253 - 1 の間) であれば true を返します。
Number.toInteger()
渡された値を評価し、整数値 (または Infinity) に変換します。ただし、このメソッドは廃止されました。
Number.parseFloat()
値はグローバルオブジェクトの parseFloat() と同じです。
Number.parseInt()
値はグローバルオブジェクトの parseInt() と同じです。

Number インスタンス

すべての Number インスタンスは、Number.prototype を継承します。Number コンストラクタの prototype オブジェクトは、すべての Number インスタンスに影響を及ぼします。

メソッド

Number.prototype.toExponential()
指数表記で数値を表す文字列を返します。
Number.prototype.toFixed()
固定小数点表記で数値を表す文字列を返します。
Number.prototype.toLocaleString()
この値を表す言語依存の文字列を返します。Object.prototype.toLocaleString() メソッドを上書きします。
Number.prototype.toPrecision()
指定された精度で、固定小数点表記または指数表記で数値で表す文字列を返します。
Number.prototype.toSource()
指定された 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 The Number Type の章を参照してください):

var biggestInt = Number.MAX_SAFE_INTEGER; //(253 - 1) => 9007199254740991;
var smallestInt = Number.MIN_SAFE_INTEGER;  //-(253 - 1) => -9007199254740991;

JSON にシリアライズされたデータを解析する場合、この範囲を超えた整数値は、JSON パーサがこの値を Number 型に強制すると信頼できない値になるでしょう。可能な回避策として、代わりに String を使用してください。

大きい数値は BigInt 型を用いて表すことができます。

Number を使用して Date オブジェクトを変換する

以下の例は、Number を関数として用いて、Date オブジェクトを数値に変換します:

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) 標準 初期定義。JavaScript 1.1 で実装されました。
ECMAScript 5.1 (ECMA-262)
Number の定義
標準
ECMAScript 2015 (6th Edition, ECMA-262)
Number の定義
標準 New methods and properties added: EPSILON, isFinite, isInteger, isNaN, parseFloat, parseInt
ECMAScript Latest Draft (ECMA-262)
Number の定義
ドラフト

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
NumberChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
EPSILONChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 25IE 未対応 なしOpera 完全対応 21Safari 完全対応 9WebView Android 完全対応 ≤37Chrome Android 完全対応 34Firefox Android 完全対応 25Opera Android 完全対応 21Safari iOS 完全対応 9Samsung Internet Android 完全対応 2.0nodejs 完全対応 0.12
MAX_SAFE_INTEGERChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 31IE 未対応 なしOpera 完全対応 ありSafari 完全対応 9WebView Android 完全対応 ありChrome Android 完全対応 34Firefox Android 完全対応 31Opera Android 完全対応 ありSafari iOS 完全対応 9Samsung Internet Android 完全対応 ありnodejs 完全対応 0.12
MAX_VALUEChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
MIN_SAFE_INTEGERChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 31IE 未対応 なしOpera 完全対応 ありSafari 完全対応 9WebView Android 完全対応 ありChrome Android 完全対応 34Firefox Android 完全対応 31Opera Android 完全対応 ありSafari iOS 完全対応 9Samsung Internet Android 完全対応 ありnodejs 完全対応 0.12
MIN_VALUEChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
NaNChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
NEGATIVE_INFINITYChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
POSITIVE_INFINITYChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
isFiniteChrome 完全対応 19Edge 完全対応 12Firefox 完全対応 16IE 未対応 なしOpera 完全対応 15Safari 完全対応 9WebView Android 完全対応 ありChrome Android 完全対応 25Firefox Android 完全対応 16Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 0.10
isIntegerChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 16IE 未対応 なしOpera 完全対応 21Safari 完全対応 ありWebView Android 完全対応 ≤37Chrome Android 完全対応 34Firefox Android 完全対応 16Opera Android 完全対応 21Safari iOS 完全対応 ありSamsung Internet Android 完全対応 2.0nodejs 完全対応 0.12
isNaNChrome 完全対応 25Edge 完全対応 12Firefox 完全対応 15IE 未対応 なしOpera 完全対応 ありSafari 完全対応 9WebView Android 完全対応 ありChrome Android 完全対応 25Firefox Android 完全対応 15Opera Android 完全対応 ありSafari iOS 完全対応 9Samsung Internet Android 完全対応 ありnodejs 完全対応 0.10
isSafeIntegerChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 32IE 未対応 なしOpera 完全対応 21Safari 完全対応 10WebView Android 完全対応 ≤37Chrome Android 完全対応 34Firefox Android 完全対応 32Opera Android 完全対応 21Safari iOS 完全対応 ありSamsung Internet Android 完全対応 2.0nodejs 完全対応 0.12
parseFloatChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 25IE 未対応 なしOpera 完全対応 21Safari 完全対応 9WebView Android 完全対応 ≤37Chrome Android 完全対応 34Firefox Android 完全対応 25Opera Android 完全対応 21Safari iOS 完全対応 9Samsung Internet Android 完全対応 2.0nodejs 完全対応 0.12
parseIntChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 25IE 未対応 なしOpera 完全対応 21Safari 完全対応 9WebView Android 完全対応 ≤37Chrome Android 完全対応 34Firefox Android 完全対応 25Opera Android 完全対応 21Safari iOS 完全対応 9Samsung Internet Android 完全対応 2.0nodejs 完全対応 0.12
prototypeChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
toExponentialChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5.5Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
toFixedChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5.5Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
toInteger
非推奨非標準
Chrome 未対応 なしEdge 未対応 なしFirefox 未対応 16 — 32IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしFirefox Android 未対応 16 — 32Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
toLocaleStringChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
toPrecisionChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5.5Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
toSource
非標準
Chrome 未対応 なしEdge 未対応 なしFirefox 完全対応 1IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしFirefox Android 完全対応 4Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
toStringChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり
valueOfChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり

凡例

完全対応  
完全対応
未対応  
未対応
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。

関連情報