isNaN(null) // false
위와 같이 결과가 나오는 것을 보고 혼란스러웠다. 왜..?
isNaN(Number(null)) // false
isNaN(NaN) // true
isNaN(undefined) // true
isNaN({}) // true
isNaN(true) // false
isNaN(null) // false
isNaN('1') // false
isNaN('') // false
isNaN([]) // false
isNaN() 함수는 넘겨받은 인수를 숫자로 변환한 후, 그 결과로 NaN 여부를 확인한다. 즉, Number로 변환 후 숫자로 리턴되는 boolean값, null, 문자열 같은 경우는 숫자로 판단된다.
1. typeof n === 'number'
2. isNaN(parseInt(n))
Number('123') // 123
parseInt('123') // 123
Number('123가나다') // NaN
parseInt('123가나다') // 123
Number('가나다123') // NaN
parseInt('가나다123') // NaN
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isNaN https://mygumi.tistory.com/335 http://megaton111.cafe24.com/2018/05/07/문자열을-숫자로-형변환하기-nuber-와-parseint의-차이/