동등 비교
연산자는 느슨한 비교를 하지만 일치 비교
연산자는 엄격한 비교를 한다.
비교 연산자 | 의미 | 사례 | 설명 |
---|---|---|---|
== | 동등 비교 | x == y | x와 y의 값이 같음 |
=== | 일치 비교 | x === y | x와 y의 값과 타입이 같음 |
!= | 부동등 비교 | x != y | x와 y의 값이 다름 |
!== | 불일치 비교 | x !== y | x와 y의 값과 타입이 다름 |
동등 비교(==) 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.
따라서 동등 비교 연산자는 좌항과 우항의 피연산자가 타입은 다르더라도 암묵적 타입 변환 후에 같은 값일 수 있다면 true를 반환한다.
// 동등 비교
5 == 5 // true
// 타입은 다르지만 암묵적 타입 변환을 통해 타입을 일치시키면 동등하다.
5 == '5' // true
동등 비교 연산자는 편리한 경우도 있지만 대체적으로 결과를 예측하기 어렵고 실수할 확률이 높아진다.
'0' == ''; // false
0 == ''; // true
0 == '0'; // true
false == 'false'; // false
false == '0'; // true
false == null; // false
false == undefined; // false
위처럼 동등 비교(==)
연산자는 예측하기 어려운 결과를 만들어낸다. 따라서 동등 비교 연산자 대신 일치 비교(===)
연산자를 사용하는 것이 좋다.
0 === ""; // false
0 === "0"; // false
1 === true // false
false === "0" // false
null === undefined // false
false === null // false
false === undefined // false
==
일치 연산자를 사용한 것보다 더 예측하기 쉽고 가독성에도 좋다는 것을 알 수 있다.