본문 바로가기

Js

Js / JavaScript 문법 / difference between strict equality and loose equality

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

 

loose equality/strict equality operator

동등비교 연산자와 일치 비교 연산자는 좌항과 우항의 피연산자가 같은 값으로 평가되는 지 비교해 불리언 값을 반환한다. 하지만 두 개는 비교하는 엄격성의 정도가 다르다.

 

== 동등비교 x == y x와 y의 값이 같음
=== 일치비교 x == y x와 y의 값과 타입이 같음
!= 부동등 비교 x != y x와 y의 값이 다름
!== 불일치 비교 x !== y x와 y의 값과 타입이 다름

 

 

자바스크립트에서의 동등비교 동작

좌항과 우항의 피연산자를 비교할 때 먼저 implicit coersion을 통해 type을 일치시킨 후 같은 값인지 비교한다. 이는 예측불가능한 값이 나오며 동등비교연산자를 사용하지 않는 편이 낫다.

 

자바스크립트에서의 일치비교 동작

좌항과 우항의 피연산자가 타입도 같고 값도 같은 경우에 한하여 true를 반환한다. implicit coersion을 하지 않고 값을 비교한다.

일치비교에서의 주의 점은 NaN을 비교할 때 이며 NaN과 NaN은 서로 다르다고 판정이되므로, 빌트인 함수인 isNaN을 사용해야한다.