Skip to content

Latest commit

 

History

History
51 lines (38 loc) · 1.85 KB

== 연산자와 === 연산자 차이.md

File metadata and controls

51 lines (38 loc) · 1.85 KB

비교 연산자 (== vs === 차이)

동등 비교 연산자는 느슨한 비교를 하지만 일치 비교 연산자는 엄격한 비교를 한다.

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

== 일치 연산자를 사용한 것보다 더 예측하기 쉽고 가독성에도 좋다는 것을 알 수 있다.