기본 콘텐츠로 건너뛰기

라벨이 weird javascript인 게시물 표시

애매한 자바스크립트.

 자바스크립트는 꽤나 오래 된 언어이다. 오래되기도 했고, 2010년대 전까지만 해도, 브라우저별로 별에 별 스펙이 달랐던 언어였다. 요즘에는 그런거 없이, 표준이 잘 맞춰져있고, 브라우저들도 표준을 잘 맞춰서 개발되고 있으면, ie11 서비스 종료에 따라서, 모든 브라우저들이 계속 업데이트 되는 상황이라, 개발이 편해지고 있다.  isNaN  isNaN이라고 하면 어떤 것이 생각 나는가? isNaN(NaN)이라고 했을 때, true값이 나올것 같지 않나? 그렇다면, isNaN('fasd')는 어떤가?  isNaN이라는 함수가 NaN인지 확인 하는 함수라면, false가 나올 것이고, 숫자가 아닌 것을 판단하는 것이라면(Not a Number), true가 나올 것 같다. window . isNaN ( NaN ) // true Number . isNaN ( NaN ) // true window . isNaN ( 'fasd' ) // true Number . isNaN ( 'fasd' ) // false  결과는 이와 같다. window.isNaN의 경우 is Not a Number이며, Number.isNaN의 경우 is NaN이다.  뭔가 말장난과 비슷한 함수이다.  일단 이런 함수가 왜 필요할까? 일반적인 방법으로는 NaN을 판단이 불가능 하기 때문이다. NaN === NaN // false  NaN과 NaN을 비교를 하면 false가 발생한다. 다른 값이다 이거다.  실제로, 두 함수 Number.isNaN, window.isNaN 두개의 함수 둘다 말이 된다. 하지만, 섞어서 사용하지 말기를 바란다.  indexOf  indexOf는 지난번에 다룬적이 있다.  이번에도 NaN이 등장했다. NaN을 indexOf로는 값이 찾아지지 않지만, indecluds로는 포함되어있다.  이런식의 문제도 있다. 아마 프로젝트를 하다보면 underscore...