console.log("1:",Number.MAX_SAFE_INTEGER);
console.log("2:",Math.pow(2,53)-1);
console.log("1:",Number.MIN_SAFE_INTEGER);
console.log("2:",-(Math.pow(2,53)+1));
/*
1: 9007199254740991
2: 9007199254740991
1: -9007199254740991
2: -9007199254740992
*/
let total = 0.1+0.2;
console.log(total); // 0.30000000000000004
let result = (Math.abs(0.1+0.2-0.3)<Number.EPSILON);
// Number.EPSILON은 유동 소수점 처리에서 미세한 값 차이 때문에 일치하지 않을 떄 사용
// Number.EPSILON값은 IEEE 754의 64비트 차이 값
console.log(result); // true
let value = (Math.pow(10,1)*0.1)+(Math.pow(10,1)*0.2);
console.log(value/10===0.3); // true
let two = 0b0101; // 2진법
let eight = 0o0101; // 8진법
console.log(two, eight); // 5 16
// isNaN() : Not a Number이면 true 반환, 아니면 false 반환
// Number 타입과 글로벌 오브젝트 비교
console.log("1:", Number.isNaN(NaN), isNaN(NaN)); // true, true
console.log("2:", Number.isNaN("NaN"), isNaN("NaN")); // false, true
console.log("3:", Number.isNaN("ABC"), isNaN("ABC")); // false, true
console.log("4:", Number.isNaN(undefined), isNaN(undefined)); // false, true
console.log("5:", Number.isNaN({}), isNaN({})); // false, true
console.log("6:", Number.isNaN(Number.NaN), isNaN(Number.NaN)); // true, true
console.log("7:", Number.isNaN(0 / 0), isNaN(0 / 0)); // true, true
console.log("8:", Number.isNaN(true), isNaN(true)); // false, false
console.log("9:", Number.isNaN(null), isNaN(null)); // false, false
console.log("A:", Number.isNaN(""), isNaN("")); // false, false
// isInteger() : 정수 여부
// 이하 true
console.log("1:", Number.isInteger(0));
console.log("2:", Number.isInteger(1.0));
console.log("3:", Number.isInteger(-123));
// 이하 false
console.log("4:", Number.isInteger("12"));
console.log("5:", Number.isInteger(1.02));
console.log("6:", Number.isInteger(NaN));
console.log("7:", Number.isInteger(true));
// isSafeInteger() : 안정정수 여부
// 파라미터 -(2의 53승 -1) 부터 (2의 53승 -1)까지 이면 true 아니면 false
// true
console.log("1:", Number.isSafeInteger(7));
console.log("2:", Number.isSafeInteger(7.0));
console.log("3:", Number.isSafeInteger(Number.MAX_SAFE_INTEGER));
console.log("4:", Number.isSafeInteger(Number.MIN_SAFE_INTEGER));
// false
console.log("5:", Number.isSafeInteger(7.1));
console.log("6:", Number.isSafeInteger("123"));
console.log("7:", Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1));
console.log("8:", Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1));
// isFinite() : 유한값 여부
console.log("1:", Number.isFinite(Infinity), isFinite(Infinity)); // false false
console.log("2:", Number.isFinite(-Infinity), isFinite(-Infinity)); // false false
console.log("3:", Number.isFinite(0), isFinite(0)); // true true
console.log("4:", Number.isFinite("0"), isFinite("0")); // false true
console.log("5:", Number.isFinite(null), isFinite(null)); // false true
console.log("6:", Number.isFinite(NaN), isFinite(NaN)); // false false
console.log("7:", Number.isFinite(undefined), isFinite(undefined)); // false false
console.log("8:", Number.isFinite(true), isFinite(true)); // false true
반응형
'WEB > ECMAScript' 카테고리의 다른 글
Template Literal / Array Object (0) | 2020.02.25 |
---|---|
Math 오브젝트 / String Object (0) | 2020.02.25 |
Object - function 작성, assign(), is() (0) | 2020.02.23 |
Destructuring Assignment (0) | 2020.02.20 |
Array Function (0) | 2020.02.20 |