같은 값인가에 대한 판단을 해주는 ==에 대해서는 예전에도 다루었던 적이 있다.
https://sejiwork.blogspot.com/2021/03/blog-post_21.html
뭐 한 번 보면 == 이것이 왜 쓰면 안되는 지에 대해서 대충 느끼실 거지만 위의 것을 클릭하기 귀찮으신 분들을 위하여 짧은 예제를 작성하겠다.
짧은 코드지만, ==가 얼마나 불편한 녀석인지 감은 오실 것으로 보인다.
그렇다면 ===은 완벽 할까? 그렇게 생각한다면 아래 코드를 봐주시면 된다.
뭐 물론 NaN은 "숫자가 아닙니다."라는 뜻이긴 하지만 결국 전역에 붙어있는 변수이다.
이게 더욱더 불편한 것은 아래의 코드를 보자
null은 비교값이 진실이라는 것이다. null은 특정값을 가리키는 없다는 것인데, NaN처럼 거짓이 나오던 NaN이 참값이 나오던 일관성을 갖는 것이 더 맞다고 생각한다.
자 그러면 아래 코드를 보자.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/is
Object.is는 두 값이 같은지에 대한 판단이다.
null과 NaN이 원시타입이 아닌 것은 다들 알 것이다. 진짜 값이 같은것을 판단해주는 지는 의문이다.
==, ===, Object.is 모든상황을 고려 할 수 있는가?? 나는 불가능하다. 개발하는 동안 ==보다 ===가 부작용이 덜 한 것은 알겠지만... 실버불렛이 없는 이상 무조건 쓰지 말아야 하는가에 대한 언급에 대해서는 동의 할 수 없는 상황이다.
댓글
댓글 쓰기