NaN, 0과 -0등을 ES6에서 Object.is() 라는 유틸리티 함수로 간단하게 판별할 수 있다.
NaN은 물론 Number.isNaN()을 사용해도 된다.
폴리필도 간단하다.
if (!Object.is) {
Object.is = function (v1, v2) {
// '-0' 테스트
if (v1 === 0 && v2 === 0) {
return 1 / v1 === 1 / v2;
}
// 'NaN' 테스트
if (v1 !== v1) {
return v2 !== v2;
}
// 기타
return v1 === v2;
}
}
0과 -0을 비교할 때는 Object.is()를 사용할 것
그 외에는 == 또는 === 연산자로 판별하는 것이 더 효율적.