가급적 일치비교 연산자를 사용하려 노력하지만 가끔은 적당한 동등비교를 사용해 무지성으로 문제를 해결하려 할 때가 있었다. 특히 코테볼 때.
이번에 모던 자바스크립트 Deep Dive를 읽으며 예제에 의문이 들기 시작했다.
//결과를 예측하기 어려운 동등비교
'0' == '' //false
0 == '' //true
0 == '0' //true
false == 'false' //false
false =='0' //true
false == null // false
false == undefined // false
이렇게 많은 예제를 보니 대관절 기준이 무엇일까 고민에 빠졌다.
그러다 동기와 함께 고민 끝에 결론을 내려 보았다.
- 비교하는 두 피연산자의 자료형이 동일시에 암묵적으로 타입 변환을 시키지 않고 값을 비교한다.
- 자료형이 다를 경우 항상 Number로 변환하여 비교한다.
- null은 undefined와 비교시만 number로 변환하고 그 외 자료형과 비교시 무조건 false 반환
보다 자세한 글 => https://velog.io/@liketiger/JS%EA%B0%80-%EB%84%88%EB%AC%B4%ED%95%B4
다다 안뇽