NaN 특징:
-특별한 숫자형 value, (typeof NaN // 'number')
-'잘못된 입력으로 계산할 수 없음'을 의미하는 값임
-Number('a'), Math.~(), 'a'/2 ... 등 함수의 결과 혹은 연산 결과로 등장한다
NaN은 판별에 주의해야함
1) isNaN(NaN) // true
2) NaN === NaN // false
*** [1,2,NaN,4].indexOf(NaN) // -1 <-> [1,2,NaN,4].includes(NaN) // true
따라서 자료구조에서 NaN를 구별해야하는 로직에서는 콜백함수를 통해 isNaN() 함수를 사용하는 것이 바람직해보임. (고차함수: forEach, find, findIndex)
(typeof NaN === 'number' // true)
3줄요약
1. 숫자형 데이터에는 숫자가 아닌 값을 나타내는 특별한 값이 존재. NaN
2. 배열 메소드 중에 NaN을 판별하지 못하는 메소드가 존재함
3. NaN의 판별은 함수 isNaN()을 사용할 것