NaN 은 Not-a-Number 로 숫자가 아니라는 뜻.
표현불가능한 수치형 결과를 나타내고 표현할 수 없는 값뿐만 아니라
자기자신과 일치하지 않는 유일한 값.
자신과 비교불가 이유는 같은 NaN이라고해도 그 값이 다를 수 있기 때문.
ex> sqrt (-1) vs sqrt(-2) // 이 두개는 값이 다른 값이고 다른 NaN임.
사실상 숫자값이지만 컴퓨터로는 표현할 수 없는 숫자 값
가끔 Javascript로 숫자를 다루다 보면 숫자 범위를 초과하거나 오류로 NaN이 나올 때가 있는 데 NaN 값은 산술 연산의 결과가 정의되지 않은(undefined) 혹은 표현할 수 없는 값이 될 때 생성. 그러니까 숫자를 반환할 것으로 의도한 조작이 실패 했을 때 반환 되는 값이다.
isNaN(value)
// 상위 함수는 인자로 받은 값이 숫자가 아니면 혹은 NaN이면 true를 반환하고 다른 데이터 타입이지도 구분 가능. ( boolean형태로 결과값을 반환 )
부동 소숫점 숫자의 한계를 넘어가는 숫자 의미.(최대/최소값을 벗어나는 숫자를 표현하기 위함. 어떤 수를 0으로 나누었을때 나오는 값. infinity와의 어떠한 산술연산도 결과값으로 infinity가 반환됨.
isFinite(testValue)
// 상위 함수는 인자로 받은 값이 주어진 숫자가 NaN이 아닌 동시에 양의 무한대나 음의 무한대가 아닌지 여부를 검사, 유한한 숫자면 true, 무한한 숫자 또는 숫자가 아니면 false를 반환 ( boolean형태로 결과값을 반환 )