본문 바로가기

DEV/JS, TS

[JavaScript] == 과 ===의 차이점

==, ===은 비교를 위해 사용되는 연산자이다.

하지만 두가지가 어떻게 보면 비슷한 역할을 하는데 정확히 어떤 부분에서 차이가 있는지 알아보면 좋을것같다.

 💡 각각의 이름
== : Equal Operator
=== : Strict Equal Operator

1. == : Equal Operator

비교연산을 할때 사용되는 연산자로 a와 b가 있을때 값을 비교하며 같으면 true, 다르면 false를 반환한다.

결국 이녀석에게 있어서 가장 중요한것은 값인것이다.

예를 들어 a=2 , b=”2” 일때 Equal Operator은 true를 반환한다. 아래의 예시를 보자,

a와 b는 2라는 값을 동일하게 가지고 있기 때문에 true가 된것이다.

이 밖에도 아래 사진과 같이 값만 같으면 모두다 true를 반환하게 된다.

2. === : Strict Equal Operator

이녀석은 =이 세개나 있다. 대체 왜 귀찮게 하나를 더 써가면서 까지 이녀석을 사용하는것일까?

 

예시를 먼저 보자면

위와 같이 a와 b를 비교했는데 이녀석은 false라고 한다.

 

값이 같은데 대체 왜 아니라고 하는걸까?

 

=== 이녀석은 타입까지도 비교를 한다.

위의 사진에서 a는 number값을 가지고 있지만 b는 string의 값을 가지고 있기때문에

false를 반환하게 된것이다.

다른 예시를 좀더 보자면

1번과 동일한 연산이었지만 첫번째를 제외하고는 전부다 false를 반환했다.

3. 그렇다면 어떤것을 사용하는게 더 좋을까?

사실 어떤것이 정답이라는 기준을 없을것같다.

하지만 타입스크립트를 사용하거나 타입에 대한 부분에 있어 확실한 연산이 필요한 경우에는

===을 사용하는것이 맞는것같다.

심지어 타입스크립트와 eslint를 사용하는 환경에서는 ==을 사용할 경우 에러를 표출하기도 한다.

상황과 경우에 따라 사용하면 되겠지만 의미를 알고 사용해보자.

 

반응형