Numberオブジェクト

Number オブジェクトは数値のラッパークラスです。 Number オブジェクトのインスタンスだけでなく、数値からも Number オブジェクトのメソッドを呼び出したりプロパティを参照することができます。ここでは JavaScript の Number オブジェクトについて解説します。

(Last modified: )

Numberオブジェクトのコンストラクタ

Number オブジェクトは数値のラッパーオブジェクトです。数値に対して Number オブジェクトのメソッドを呼び出すと、数値が自動的に Number オブジェクトに変換されてメソッドが呼び出されます。(ラッパーオブジェクトとはなにかについては「ラッパーオブジェクトとプリミティブ型」を参照されてください)。

通常 Number オブジェクトを直接作成する必要はあまりありませんが、オブジェクトを作成するには Number オブジェクトのコンストラクタを使用します。書式は次のとおりです。

new Number(value)

引数には Number オブジェクトの値を指定します。数値以外を指定した場合は、いったん数値に変換されたあとで値として設定されます。値は Number オブジェクトがラップするプリミティブ値として設定されます。

次のサンプルをみてください。

let obj1 = new Number(10);
console.log(obj1);
>> Number {10}

let obj2 = new Number('10');
console.log(obj2);
>> Number {10}

let obj3 = new Number('Hello');
console.log(obj3);
>> Number?{NaN}

数値以外の値を指定した場合、例えば同じ文字列を指定した場合でも数値として扱われるかどうかは文字列の値によって異なります。

Numberオブジェクトのプリミティブ値を取得する

Number オブジェクトが持つプリミティブ値を取得するには、 Number オブジェクトで用意されているインスタンスメソッドの valueof メソッドを使用します。書式は次の通りです。

numberObj.valueOf()

指定した Number オブジェクトが持つプリミティブ値を返します。

次のサンプルをみてください。

let obj = new Number(10);
console.log(obj.valueOf());
>> 10

Number オブジェクトが持つプリミティブ値を取得することができました。

Numberオブジェクトの静的プロパティ

Number オブジェクトにはよく使用される静的プロパティが用意されています。下記はその一部です。

プロパティ説明
Number.MAX_SAFE_INTEGER安全な整数の最大値 (253 - 1)
Number.MIN_SAFE_INTEGER安全な整数の最小値 (-(253 - 1))
Number.MAX_VALUE表現できる正の数の最大値
Number.MIN_VALUE表現できる正の数の最小値
Number.NaN"Not a Number" (数値ではない) を表す値
Number.POSITIVE_INFINITY無限大
Number.NEGATIVE_INFINITY負の無限大

安全な整数とは難しい言葉になりますが正確に IEEE-754 倍精度数として表すことができ、別の値を IEEE-754 倍精度数として表した値と一致することがない値です。(もう少し分かりやすく説明できるようになったら書き換えます)。実際の値は次のようになります。

console.log(Number.MAX_SAFE_INTEGER);
>> 9007199254740991

console.log(Number.MIN_SAFE_INTEGER);
>> -9007199254740991

表現できる正の数の最大値は表示できる最大の値で、これを超える値は Infinity と表示されます( Infinity とはグローバルプロパティのひとつで無限大を表します)。また表現できる正の数の最小値とは 0 に最も近い正の値です。実際の値は次のようになります。

console.log(Number.MAX_VALUE);
>> 1.7976931348623157e+308

console.log(Number.MAX_VALUE * 2);
>> Infinity

console.log(Number.MIN_VALUE);
>> 5e-324

Number.NaN は数字ではない値を表す時に使われます。

console.log(Number('abc'));
>> NaN

Number.POSITIVE_INFINITY は無限大、 Number.NEGATIVE_INFINITY は負の無限大を表します。

console.log(Number.POSITIVE_INFINITY);
>> Infinity

console.log(Number.NEGATIVE_INFINITY);
>> -Infinity

-- --

JavaScript の Number オブジェクトについて解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。