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【非数】定数
メモ
- 非数 (Not a Number)
- グローバルのNaN【非数】と同等
- 判定:(NaN == NaN と NaN === NaN はどちらも false)
- グローバルのisNaN()【非数判定】 (数値変換される為、isNaN(undefined)・isNaN("NaN") 等が true:厳密にするには下記の方法)
- X !== X を判定:結果が true となるのは、X が NaN の場合のみ
- Number.isNaN【非数 判定】:数値変換なし
- 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【負の無限大 (-∞)】定数
メモ
- Number.POSITIVE_INFINITY【正の無限大 (+∞)】: グローバル Infinity【無限大】と同等
- Number.NEGATIVE_INFINITY【負の無限大 (-∞)】: マイナス(-)のグローバル Infinity【無限大】と同等
- 有限数判定
- isFinite【有限数判定】 (数値変換あり)
- Number.isFinite【有限数 判定】:数値変換なし
- 無限大を含む演算:演算子 参照
例
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
関連
- ECMAScript 5.1 (英語)
- ECMAScript 2015 (6) (英語)
- ECMAScript 2016 (7) (英語)