JavaScript/Number
Number
オブジェクトは、数値を表すラッパーオブジェクトです。このオブジェクトは、プリミティブ型の数値を操作するためのメソッドやプロパティを提供します[1]。
構文
new Number(value) Number(value)
value
: 数値に変換する値。省略した場合は0
になります。
プロパティとメソッド
静的プロパティ
名称 | 解説 |
---|---|
Number.EPSILON |
1 と、Number として表現可能な 1 より大きい最小の値との間の差を表します。 |
Number.MAX_SAFE_INTEGER |
JavaScript における最大の安全な整数を表します (2^53 - 1 )。 |
Number.MAX_VALUE |
JavaScript における最大の数値を表します。 |
Number.MIN_SAFE_INTEGER |
JavaScript における最小の安全な整数を表します (-(2^53 - 1) )。 |
Number.MIN_VALUE |
JavaScript における最小の正の数値を表します。 |
Number.NEGATIVE_INFINITY |
負の無限大を表します。 |
Number.NaN |
Not-A-Number (非数) を表します。 |
Number.POSITIVE_INFINITY |
正の無限大を表します。 |
Number.length |
Number コンストラクタが受け取る引数の数を返します。常に1です。 |
Number.name |
Number コンストラクタの名前を返します。常に"Number"です。 |
Number.prototype |
すべての数値オブジェクトの祖先となるNumber プロトタイプオブジェクトへの参照です。 |
静的アクセサ
静的メソッド
名称 | 解説 |
---|---|
Number.isFinite() |
渡された値が有限数であるかどうかを判定します。 |
Number.isInteger() |
渡された値が整数であるかどうかを判定します。 |
Number.isNaN() |
渡された値が NaN であるかどうかを判定します。 |
Number.isSafeInteger() |
渡された値が安全な整数であるかどうかを判定します。 |
Number.parseFloat() |
文字列を浮動小数点数に変換します。 |
Number.parseInt() |
文字列を整数に変換します。 |
インスタンスプロパティ
インスタンスアクセサ
インスタンスメソッド
名称 | 解説 |
---|---|
Number.prototype.constructor() |
Number オブジェクトのインスタンスを生成した関数を返します。 |
Number.prototype.toExponential() |
数値を指数表記の文字列で返します。 |
Number.prototype.toFixed() |
数値を固定小数点表記の文字列で返します。 |
Number.prototype.toLocaleString() |
数値をロケールに合わせた文字列で返します。 |
Number.prototype.toPrecision() |
数値を指定された精度で表す文字列で返します。 |
Number.prototype.toString() |
数値を指定された基数(デフォルトは10)の文字列で返します。 |
Number.prototype.valueOf() |
Number オブジェクトのプリミティブ値を返します。 |
例
Number オブジェクトの作成
以下のプログラムは、Number
コンストラクタを使用して Number オブジェクトを作成します。
const a = new Number(123); const b = Number(123); console.log(typeof a); // "object" console.log(typeof b); // "number" console.log(a === 123); // false console.log(b === 123); // true
このプログラムでは、new Number()
を使用すると Number オブジェクトが作成され、Number()
を使用するとプリミティブ型の数値が作成されます。Number オブジェクトとプリミティブ型の数値は厳密等価演算子 (===
) で比較すると等しくありません。
数値の変換
以下のプログラムは、Number
を使用して様々な値を数値に変換します。
console.log(Number("123")); // 123 console.log(Number("123.45")); // 123.45 console.log(Number("")); // 0 console.log(Number("0x11")); // 17 console.log(Number("0b1010")); // 10 console.log(Number("0o10")); // 8 console.log(Number("foo")); // NaN console.log(Number(true)); // 1 console.log(Number(false)); // 0 console.log(Number(null)); // 0 console.log(Number(undefined)); // NaN
このプログラムでは、Number()
を使用して文字列、真偽値、null、undefined などを数値に変換しています。数値として解釈できない値は NaN
に変換されます。
数値のフォーマット
以下のプログラムは、Number オブジェクトのメソッドを使用して数値をフォーマットします。
const num = 123.456; console.log(num.toFixed(2)); // "123.46" console.log(num.toPrecision(4)); // "123.5" console.log(num.toExponential(2)); // "1.23e+2" console.log(num.toString(16)); // "7b.74bc6a7ef9db" console.log(num.toString(2)); // "1111011.0111010..."
このプログラムでは、toFixed()
, toPrecision()
, toExponential()
, toString()
などのメソッドを使用して数値を様々な形式でフォーマットしています。
注意点
- コンストラクタの使用:
new Number()
を使用すると Number オブジェクトが作成されますが、通常はプリミティブ型の数値 (Number()
) を使用することが推奨されます。 - NaN の判定:
NaN
は自分自身と等しくないという特殊な性質があるため、Number.isNaN()
を使用して判定する必要があります。 - 安全な整数:
Number.isSafeInteger()
を使用して、数値が安全な整数範囲内かどうかを判定できます。 - 浮動小数点の精度: JavaScript の数値は IEEE 754 倍精度浮動小数点数として実装されているため、精度に制限があります。
脚註
- ↑ プリミティブ型の数値に対してメソッドを呼び出すと、一時的に Number オブジェクトに変換されます。
下位階層のページ
関連項目
外部リンク
附録
静的プロパティ
静的アクセサ
静的メソッド
継承関係
Numberのインスタンスプロパティ
Numberのインスタンスアクセサ
Numberのインスタンスメソッド
Numberのインスタンスプロパティ
Numberのインスタンスアクセサ
Numberのインスタンスメソッド
Objectのインスタンスプロパティ
Objectのインスタンスアクセサ
Objectのインスタンスメソッド
- Object.prototype.__defineGetter__()
- Object.prototype.__defineSetter__()
- Object.prototype.__lookupGetter__()
- Object.prototype.__lookupSetter__()
- Object.prototype.constructor()
- Object.prototype.hasOwnProperty()
- Object.prototype.isPrototypeOf()
- Object.prototype.propertyIsEnumerable()
- Object.prototype.toLocaleString()
- Object.prototype.toString()
- Object.prototype.valueOf()