var x = 123; // integer (整数)
var y = 3.14; // floating-point number (浮動小数点数)
var z = 0xff; // hexadecimal number: 255 (16進数:255)
比較的大きな数の場合、指数表記を使用して表すことができます。たとえば、6.02e+23 は 6.02 x 10²³ に等しく、サンプル コードは次のようになります。
var x = 1.57e4; // 15700と等しい
var y = 4.25e+6; // 4250000と等しい
var z = 4.25e-6; // 0.00000425と等しい
ヒント: JavaScript で表現できる最大の整数は 2⁵³ – 1、つまり 9007199254740991 であり、表現できる最小の整数は -(2⁵³ – 1)、つまり -9007199254740991 です。
10 進数を使用して数値を表すだけでなく、8 進数または 16 進数表記を使用して数値を表すこともできます。8 進数表記では接頭辞として 0 を使用し、16 進表記では接頭辞として 0x を使用します。サンプル コードは次のとおりです。
var a = 0377; // 255に等しい
var b = 0123; // 83に等しい
var c = 0xff; // 255に等しい
var d = 0xb4; // 180に等しい
注: 整数は 10 進数、16 進数、および 8 進数表記で表すことができ、浮動小数点数は 10 進数または指数表記で表すことができます。
±無限大(無限大)
Infinity は無限大を表す特別な値です。式の演算結果が JavaScript で表現できる数値の上限または下限を超える場合、JavaScript は Infinity または -Infinity を使用して結果を表現します。Infinity は正の無限大を表し、-Infinity は負の無限大を表します。サンプルコードは次のとおりです。
変数aは、5を0で割った場合、無限大(Infinity)となります。
変数bは、-5を0で割った場合、マイナスの無限大(-Infinity)となります。
NaN (数値ではありません)
NaN は、値が数値ではないことを示すために使用される JavaScript の特別な値でもあります。 NaN は (==、!=、===、!=== 比較により) 他の値 (別の NaN 値を含む) と等しくありません。 isNaN() 関数を使用して、数値が NaN であるかどうかを判断します。
次の操作は NaN を返します。
- parseInt(“abc”)、new Number(“abc”); などの関数を使用してパラメータを数値に変換できない場合は、NaN が返されます。
- Math.sqrt(-1) など、結果が実数ではない数学演算。
- オペランドに NaN を含む式 (5 * NaN など)。
- 「foo」/5 など、数値に自動的に変換できない文字列を含む非加算演算。
数値オブジェクト
Number オブジェクトはプリミティブ値のラッパー オブジェクトであり、Number オブジェクトを作成するための構文は次のとおりです。
var myNum = new Number(value);(変数myNumにvalueの値を持つNumberオブジェクトを作成する)
var myNum = Number(value);(変数myNumにvalueの値を持つNumberオブジェクトを作成する)
ここで、value は、作成する Number オブジェクトの値です。value が数値以外の値の場合、数値への変換が試行されます。変換に失敗すると、NaN が返されます。
Number() 関数を new 演算子とともに使用すると、新しい Number オブジェクトが作成されます。 new 演算子なしで Number() を関数として呼び出すと、その引数が数値に変換され、その値 (変換が失敗した場合は NaN) が返されます。
サンプルコードは次のとおりです。
var a = new Number("123");
var b = Number("456");
var c = 789;
var d = new Number("abc");
document.write(typeof a + "<br>"); // 出力:object
document.write(typeof b + "<br>"); // 出力:number
document.write(typeof c + "<br>"); // 出力:number
document.write(d + "<br>"); // 出力:NaN
数値プロパティ
次の表に示すように、いくつかのプロパティが Number オブジェクトで提供されます。
属性 | 説明 |
---|---|
Number.MAX_VALUE | JavaScriptで表現できる最大値 |
Number.MIN_VALUE | JavaScriptで表現できる最小値 |
Number.NaN | 非数値 |
Number.NEGATIVE_INFINITY | 負の無限大、オーバーフロー時に返される |
Number.POSITIVE_INFINITY | 正の無限大、オーバーフロー時に返される |
Number.EPSILON | 1 と、Number で表現できる 1 より大きい最小の浮動小数点数との差を表します。 |
Number.MIN_SAFE_INTEGER | 安全な最小整数 -9007199254740991 |
Number.MAX_SAFE_INTEGER | 安全な最大整数、9007199254740991 |
Number オブジェクトには、プロパティに加えて、次の表に示すようにいくつかのメソッドも提供されます。
方法 | 説明 |
---|---|
Number.parseFloat() | 文字列を浮動小数点数に変換します。これは、グローバル メソッド parseFloat() と同じ効果があります。 |
Number.parseInt() | 文字列を整数に変換します。これは、グローバル メソッド parseInt() と同じ効果があります。 |
Number.isFinite() | Number オブジェクトが有限数であるかどうかを判断する |
Number.isInteger() | Number オブジェクトが整数かどうかを判別する |
Number.isNaN() | Number オブジェクトが NaN 型かどうかを判断する |
Number.isSafeInteger() | Number オブジェクトが安全な整数、つまり -(2⁵³ – 1) から 2⁵³ – 1 の範囲の整数であるかどうかを判断します |
Number.toString() | 指定された基数を使用して、数値オブジェクトを文字列に変換します |
Number.toLocaleString() | ネイティブの数値形式の順序を使用して、数値オブジェクトを文字列に変換します |
Number.toFixed() | Number オブジェクトを文字列に変換します。結果の小数点以下は指定された桁数になります。 |
Number.toExponential() | Number オブジェクトの値を指数表記に変換します |
Number.toPrecision() | Number オブジェクトを指定された長さにフォーマットします。 |
Number.valueOf() | Number オブジェクトのプリミティブ数値を返します |