プログラミング言語 Web関連 javascript JS Number(数字)オブジェクト

JS Number(数字)オブジェクト

 
 
JavaScript では、10 進数、16 進数、または 8 進数の表記を使用して整数または浮動小数点数を表すことができます。他のプログラミング言語とは異なり, JavaScript の数値は整数と浮動小数点数を区別しません. IEEE754 規格 (2 進浮動小数点演算規格) の 64 ビット浮動小数点形式が数値の表現に使用されます. 最大値 (数値.MAX_VALUE) で表現できる値は±1.7976931348623157e+308、最小値(Number.MIN_VALUE)は±5e-324です。サンプルコードは次のとおりです。

 

 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 オブジェクトのプリミティブ数値を返します
 

「 JS Number(数字)オブジェクト」についてわかりやすく解説!絶対に観るべきベスト2動画

 
 
JavaScript では、10 進数、16 進数、または 8 進数の表記を使用して整数または浮動小数点数を表すことができます。他のプログラミング言語とは異なり, JavaScript の数値は整数と浮動小数点数を区別しません. IEEE754 規格 (2 進浮動小数点演算規格) の 64 ビット浮動小数点形式が数値の表現に使用されます. 最大値 (数値.MAX_VALUE) で表現できる値は±1.7976931348623157e+308、最小値(Number.MIN_VALUE)は±5e-324です。サンプルコードは次のとおりです。

 

 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 オブジェクトのプリミティブ数値を返します
 

「 JS Number(数字)オブジェクト」についてわかりやすく解説!絶対に観るべきベスト2動画