1) 사인 비트
2) 지수(exponent)
3) 가수(fraction)
log(Number.MAX_SAFE_INTEGER);
log(Math.pow(2, 53) - 1);
// 9007199254740991
// 9007199254740991
log(Number.MIN_SAFE_INTEGER);
log(-(Math.pow(2, 53) - 1));
// -9007199254740991
// -9007199254740991
사용 사례
const total = 0.2 + 0.2;
log(total);
log(total === 0.3);
// 0.30000000000000000000004
// false
const value = Math.abs(0.1 + 0.2 - 0.3);
log(value < Number.EPSILON);
// true
log(0 / 0);
const value = 0 / (0 + Number.EPSILON);
log(value);
// NaN
// 0
log(Number.isNaN("ABC"), isNaN("DEF"));
log(Number.isNaN(NaN), isNaN(NaN));
log(Number.isNaN(0 / 0), isNaN(0 / 0));
log(Number.isNaN("100"), isNaN("200"));
// false, true
// true, true
// true, true
// false, false
log(Number.isInteger(0));
log(Number.isInteger(1.0)); // 정수
log(Number.isInteger(1.01)); // 소수
// true
// true
// false
log(Number.isInteger("12"));
log(Number.isInteger(true));
// false
// false
const isSafe = Number.isSafeInteger;
log(isSafe(7.0));
log(isSafe(Number.MAX_SAFE_INTEGER));
log(isSafe(Number.MIN_SAFE_INTEGER));
// true
// true
// true
const isSafe = Number.isSafeInteger;
log(isSafe(7.1));
log(isSafe("100"));
log(isSafe(NaN));
log(isSafe(Infinity));
// false
// false
// false
// false
const num = Number.isFinite, global = isFinite;
log(num(100), global(200));
log(num("70"), global("80"));
log(num(true), global(true));
log(num(NaN), global(NaN));
log(num(undefined), global(undefined));
// true, true
// false, true
// flase, true
// false, false
// false, false