비교 연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값으로 반환된다.
동등 비교(==) 연산자와 일치 비교(===) 연산자는 좌항과 우항의 피연산자가 같은 값으로 평가되는지 비교해
불리언 값을 반환한다, 하지만 비교하는 엄격성의 정도가 다르다!
결론부터 말하면 동등비교는 느슨한 비교를 하지만 일치 비교 연산자는 엄격한 비교를 한다.
비교 연산자 | 의미 | 사례 | 설명 | 부수 효과 |
== | 동등 비교 | x == y | x와 y의 값이 같음 | 없음 |
=== | 일치 비교 | x === y | x와 y의 값과 타입이 같음 | 없음 |
!= | 부동등 비교 | x != y | x와 y의 값이 다름 | 없음 |
!=== | 불일치 비교 | x !== y | x와 y의 값의 타입이 다름 | 없음 |
동등비교(==)연산자는 좌항과 우항의 피연산자를 비교 할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.
따라서 동등 비교 연산자는 좌항과 우항의 피연산자가 타입은 다르더라도 암묵적 타입 변환 후에 같은 값일 수 있다면 true를 반환한다.
이제 다음으로 동등 비교의 위험성에 대해 알아보자.
이처럼 동등 비교(==) 연산자는 예측하기 어려운 결과를 만들어 낸다. 따라서 동등 비교 연산자는 사용하지 않는 편이 좋다!
대신 일치 비교(===) 연산자를 사용한다.
일치 비교(===) 연산자는 좌항과 우항의 피연산자가 타입도 같고 같은 경우에 한하여 true를 반환한다. 다시말해
암묵적 타입 변환을 하지 않고 값을 비교한다. 따라서 일치 비교 연산자는 얘측하기 쉽다!
출처
책: 모던 자바스크립트 Deep Dive
'javascript' 카테고리의 다른 글
재귀함수, 중첩함수, 콜백함수 (0) | 2022.11.20 |
---|---|
TDZ 와 호이스팅(Hoisting) (0) | 2022.11.18 |
동적 타이핑 (0) | 2022.11.18 |
항해 TIL pre-on 마지막날 (0) | 2022.11.12 |
표현식인 문과 표현식이 아니문 (0) | 2022.11.12 |