NaN 이란?
Not a Number 의 약자로 연산 과정에서 정상적인 값을 얻지 못할 때 출력되는 값.
주로, 숫자를 계산할 때 숫자가 아닌 값이 들어가서 정상적인 결과를 얻지 못했을 때 출력된다.
NaN 인지 체크하는 방법
isNaN() 함수를 사용한다.
function check(x) {
if(isNaN(x)) {
return true;
}
return false;
}
NaN 이면 true를 반환하고, 아니면 false를 반환한다.
NaN 의 타입은?
console.log(typeof(NaN)) // number
number...?
분명히 NaN은 Not a Number. 즉, 숫자가 아니라고 했는데 숫자형이다.
왜이럴까?
NaN 은 왜 number 타입일까?
number 타입에는 일반적인 숫자 외에 Infinity, -Infinity, NaN 같은 '특수 숫자 값' 도 포함된다.
NaN은 true, false, null 과 달리 키워드가 아니며, 전역객체(Number)의 속성이다.
따라서, NaN은 "숫자가 아님"을 나타내는 연산의 반환 값으로,
실제 숫자로 정의되지 않았지만, Number 객체의 한 속성으로 정의되어있다.