javascript

== 와 === 의 차이

노엠디엔 2022. 11. 18. 10:55

비교 연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를  불리언 값으로 반환된다.

 

동등 비교(==) 연산자와 일치 비교(===) 연산자는 좌항과 우항의 피연산자가 같은 값으로 평가되는지 비교해

불리언 값을 반환한다, 하지만 비교하는 엄격성의 정도가 다르다!

결론부터 말하면 동등비교는 느슨한 비교를 하지만 일치 비교 연산자는 엄격한 비교를 한다.

 

비교 연산자 의미 사례 설명 부수 효과
== 동등 비교 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