NaN 관련해서 두 가지가 도무지 이해가 안 됩니다.
console.log(typeof NaN);
// "number"
console.log(NaN === NaN);
// false
일단 NaN이 "Not a Number"인데 typeof는 number라고 하는 것도 헷갈리고요, 더 이상한 건 자기 자신이랑 비교했는데도 false가 나온다는 거예요. 세상에 자기랑 자기가 다른 게 어딨나요.
그러다 보니 배열에서 찾는 것도 안 됩니다.
console.log([1, NaN, 3].indexOf(NaN));
// -1
분명 배열 안에 NaN이 들어있는데 indexOf로는 못 찾아요. 왜 NaN은 자기 자신과도 같지 않게 설계된 건가요? 그리고 배열에 NaN이 있는지 확인하려면 어떻게 해야 하나요?