👋 Number 함수: isNaN(), isInteger(), isSafeInteger(), isFinite()
1. isNaN()
-
NaN
값의 여부를 체크NaN
값이면true
, 아니면false
반환
console.log(Number.isNaN('ABC'), isNaN('DEF')); // false, true console.log(Number.isNaN(NaN), isNaN(NaN)); // true, true, console.log(Number.isNaN(0 / 0), isNaN(0 / 0)); // true, true, console.log(Number.isNaN('100'), isNaN('200')); // false, false,
- 글로벌 오브젝트의
isNaN("DEF")
값 타입이Number
가 아닌 것을 체크 함,DEF
가String
타입이므로true
반환 NaN
와0 / 0
은 값이NaN
이므로true
가 됨Number.isNaN("ABC")
값이NaN
가 아니므로false
가 됨- 글로벌 오브젝트의
isNaN("200")
값을 숫자로 변환하고 그 결과로 비교 함, 변환한 값200
이Number
이므로false
반환
-
NaN 체크 방법
NaN === NaN
결과가false
이므로 사용 불가isNaN()
, 글로벌 오브젝트Number.isNaN()
Object.is(NaN, NaN)
:true
2. isInteger()
- 파라미터 값이
정수
이면true
, 아니면false
반환 -
정수로 인식
console.log(Number.isInteger(0)); // true console.log(Number.isInteger(1.0)); // true console.log(Number.isInteger(1.01)); // false
-
정수가 아닌 것으로 인식
console.log(Number.isInteger('12')); // false console.log(Number.isInteger(true)); // false
- 값을
Number
로 변환하여 체크하지 않음 Numbe
r로 변환하면,"12"
와true
가Number
이므로 정수로 인식됨
- 값을
3. isSafeInteger()
- 파라미터 값이
sfae 정수
이면true
아니면false
반환 -(2의 53승 - 1)
~+(2의 53승 -1)
:true
아니면false
const isSafe = Number.isSafeInteger;
console.log(isSafe(7.0)); // true
console.log(isSafe(Number.MAX_SAFE_INTEGER)); // true
console.log(isSafe(Number.MIN_SAFE_INTEGER)); // true
// 7.0은 정수이며, 값 범위에 속하므로 true
const isSafe = Number.isSafeInteger;
console.log(isSafe(7.1)); // false
console.log(isSafe('100')); // false
console.log(isSafe(NaN)); // false
console.log(isSafe(Infinity)); // false
// 7.1은 정수가 아님
// 값을 Number로 반환하여 체크하지 않음
// Number로 변환하면, "100"이 Number이므로 정수로 인식
4. isFinite()
- 파라미터 값이 유한 값이면
true
아니면false
-
글로벌 오브젝트의
isFinite()
와 체크 결과가 다름const num = Number.isFinite, global = isFinite; console.log(num(100), global(200)); // true, true console.log(num('70'), global('80')); // false, true console.log(num(true), global(true)); // false, true console.log(num(NaN), global(NaN)); // false, false console.log(num(undefined), global(undefined)); // false, false
- 함수는 오브젝트에 속해야 하므로
Number
와 관련된 것은Number
오브젝트의 함수 사용, 글로벌 오브젝트의 함수는 글로벌 사용이 목적