NaN이란 Not a Number의 줄임말로 숫자가 아닌이라는 의미이다.
즉, 위의 두 내장함수는 숫자가 아닌 지에 대해 검사한다.
isNaN(15) //false
isNaN(1.23) //false
isNaN('hello') //true
isNaN(null) //false
null은 js에서 Object이니 주의!
Number(null) //0
isNaN(null) //false
또한
isNaN("15") //false
isNaN("3.14") //false
isNaN()은 넘어오는 인자를 Number로 형변환을 시도한다.
ES6에선 형변환을 하지않고 검사하는 Number.isNaN()을 통해 해결이 가능하다.
function solution(arr) {
for (let i = 0; i < arr.length; i++) {
console.log(Number.isNaN(arr[i]))
}
}
const arr = ['1', '2w', '3', 'qwer'];
solution(arr);
//false
//false
//false
//false