EPSILON【最小の数値差】定数  
MAX_SAFE_INTEGER【正確な最大整数値】
  ・MIN_SAFE_INTEGER【正確な最小整数値】定数
 
MAX_VALUE【表現できる正の最大値】
  ・MIN_VALUE【表現できる正の最小値】定数

NaN【非数】定数
POSITIVE_INFINITY【正の無限大 (+∞)】
  ・NEGATIVE_INFINITY【負の無限大 (-∞)】定数

Number.EPSILON【最小の数値差】定数

メモ

  • 最小の数値差 (約 2.2204460492503130808472633361816 × 10-16)

console.log(Number.EPSILON.toPrecision(21));
// 出力:2.22044604925031308085e-16

var num = 1 / 3;
console.log(num.toPrecision(21));
// 出力:0.333333333333333314830
num = 1 - num - num - num;
console.log(num.toPrecision(21));
// 出力:1.11022302462515654042e-16
console.log(num < Number.EPSILON);
// 出力:true

Number.MAX_SAFE_INTEGER【正確な最大整数値】
  ・Number.MIN_SAFE_INTEGER【正確な最小整数値】 定数

メモ

  • Number.MAX_SAFE_INTEGER【正確な最大整数値】:9007199254740991 (253-1)
  • Number.MIN_SAFE_INTEGER【正確な最小整数値】:−9007199254740991 (−(253−1))
  • 判定: isSafeInteger【正確な整数値 判定】

console.log(Number.MAX_SAFE_INTEGER - 1); // 出力:9007199254740990
console.log(Number.MAX_SAFE_INTEGER);     // 出力:9007199254740991
console.log(Number.MAX_SAFE_INTEGER + 1); // 出力:9007199254740992
console.log(Number.MAX_SAFE_INTEGER + 2); // 出力:9007199254740992
// Number.MAX_SAFE_INTEGER は1つ大きい数と区別可能
console.log(Number.MAX_SAFE_INTEGER === (Number.MAX_SAFE_INTEGER + 1));       // 出力:false 区別可能
// (Number.MAX_SAFE_INTEGER + 1) は1つ大きい数と区別不可
console.log((Number.MAX_SAFE_INTEGER + 1) === (Number.MAX_SAFE_INTEGER + 2)); // 出力:true  区別不可

console.log(Number.MIN_SAFE_INTEGER + 1); // 出力:-9007199254740990
console.log(Number.MIN_SAFE_INTEGER);     // 出力:-9007199254740991
console.log(Number.MIN_SAFE_INTEGER - 1); // 出力:-9007199254740992
console.log(Number.MIN_SAFE_INTEGER - 2); // 出力:-9007199254740992
// Number.MIN_SAFE_INTEGER は1つ小さい数と区別可能
console.log(Number.MIN_SAFE_INTEGER === (Number.MIN_SAFE_INTEGER - 1));       // 出力:false 区別可能
// (Number.MIN_SAFE_INTEGER - 1) は1つ小さい数と区別不可
console.log((Number.MIN_SAFE_INTEGER - 1) === (Number.MIN_SAFE_INTEGER - 2)); // 出力:true  区別不可

Number.MAX_VALUE【表現できる正の最大値】
  ・Number.MIN_VALUE【表現できる正の最小値】定数

メモ

  • Number.MAX_VALUE【表現できる正の最大値】:約 1.7976931348623157 × 10308
  • Number.MIN_VALUE【表現できる正の最小値】:約 5 × 10−324

console.log(Number.MAX_VALUE);                  // 出力:1.7976931348623157e+308
console.log(Number.MAX_VALUE.toPrecision(21));  // 出力:1.79769313486231570815e+308

console.log(Number.MIN_VALUE);                  // 出力:5e-324
console.log(Number.MIN_VALUE.toPrecision(21));  // 出力:4.94065645841246544177e-324

Number.NaN【非数】定数

メモ

console.log(Number.NaN);                // 出力:NaN

console.log(isFinite(Number.NaN));      // 出力:false
console.log(Number.NaN == Number.NaN);  // 出力:false
console.log(Number.NaN === Number.NaN); // 出力:false

console.log(isNaN(Number.NaN));         // 出力:true
console.log(isNaN(undefined));          // 出力:true
console.log(isNaN( "NaN" ));            // 出力:true
console.log(Number.NaN !== Number.NaN); // 出力:true
console.log(Number.isNaN(Number.NaN));  // 出力:true
console.log(Number.isNaN(undefined));   // 出力:false
console.log(Number.isNaN( "NaN" ));     // 出力:false

Number.POSITIVE_INFINITY【正の無限大 (+∞)】
  ・Number.NEGATIVE_INFINITY【負の無限大 (-∞)】定数

メモ

var value1 = Infinity;
var value2 = -Infinity;
var value3 = Number.POSITIVE_INFINITY;
var value4 = Number.NEGATIVE_INFINITY;
console.log(value1);            // 出力:Infinity
console.log(value2);            // 出力:-Infinity
console.log(value3);            // 出力:Infinity
console.log(value4);            // 出力:-Infinity
console.log(isFinite(value1));  // 出力:false
console.log(isNaN(value1));     // 出力:false
console.log(isFinite(value2));  // 出力:false
console.log(isNaN(value2));     // 出力:false
console.log(isFinite(value3));  // 出力:false
console.log(isNaN(value3));     // 出力:false
console.log(isFinite(value4));  // 出力:false
console.log(isNaN(value4));     // 出力:false

関連