컴퓨터 연산에서 NaN은 연산 과정에서 잘못된 입력을 받았음을 나타내는 기호
이다. 특히 부동소수점 연산에서 사용한다. 예를 들면 음수의 제곱근을 구하려고 하거나, 0으로 나누려고 했을 때 발생한다. 숫자인지 아닌지를 판별하는 방법은 여러가지가 있는데 형변환 없는 엄격한 판단을 위해서 Number.isNaN()을 사용하는 걸 권장
한다.
Number.isInteger(value)
: isInteger의 매개변수로 넘겨진 Value가 정수인지 아닌지를 판별하여 Boolean을 반환한다.
isNaN(value)
: isNaN의 매개변수로 넘겨진 value를 숫자로 형변환을 시도한 뒤 NaN(Not a number)인지 아닌지를 판별하여 Boolean 값을 반환한다.
Number.isNaN(value)
: ES2015에 추가된 메서드로 매개변수로 넘겨진 value를 자동 형변환 없이 NaN인지 아닌지를 판별하여 Boolean 값을 반환한다.
// 1. 느슨한 검사 (isNaN)
isNaN(NaN); // true
isNaN(undefined); // true
isNaN(null); // false
isNaN(true); // false
// 2. 엄격한 검사
Number.isNaN(NaN); // true
Number.isNaN(undefined); // false
Number.isNaN(null); // false
Number.isNaN(true); // false
출처: 클린코드 자바스크립트 - 장현석