EPSILON【最小の数値差】
MAX_SAFE_INTEGER【正確な最大整数値】
MIN_SAFE_INTEGER【正確な最小整数値】
MAX_VALUE【表現できる正の最大値】
MIN_VALUE【表現できる正の最小値】
NaN【非数】定数
POSITIVE_INFINITY【正の無限大 (+∞)】
NEGATIVE_INFINITY【負の無限大 (-∞)】
Number.EPSILON【最小の数値差】
メモ
概要
- 最小の数値差 (約 2.2204460492503130808472633361816 × 10-16)
外部リンク
- ECMA-262 (英語)
Number.EPSILON ES2024 (15) ES2023 (14) ES2022 (13)
例
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))
関連
外部リンク
- ECMA-262 (英語)
Number.MAX_SAFE_INTEGER ES2024 (15) ES2023 (14) ES2022 (13) Number.MIN_SAFE_INTEGER ES2024 (15) ES2023 (14) ES2022 (13)
例
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
外部リンク
- ECMA-262 (英語)
Number.MAX_VALUE ES2024 (15) ES2023 (14) ES2022 (13) Number.MIN_VALUE ES2024 (15) ES2023 (14) ES2022 (13)
例
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 を含む演算:演算子 参照
外部リンク
- ECMA-262 (英語)
Number.NaN ES2024 (15) ES2023 (14) ES2022 (13)
例
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【有限数 判定】:数値変換なし
- 無限大を含む演算:演算子 参照
外部リンク
- ECMA-262 (英語)
Number.POSITIVE_INFINITY ES2024 (15) ES2023 (14) ES2022 (13) Number.NEGATIVE_INFINITY ES2024 (15) ES2023 (14) ES2022 (13)
例
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