WEB/💡 Javascript

[Javascript] '=='와 '==='의 차이점

무딘붓 2022. 7. 27. 12:20

자바스크립트를 처음 공부했을 때 가장 생소했던 것 중 하나는 비교 연산자 '==='였다.

 

일반적으로 다른 언어에서 비교연산자로 '=='만 쓰는 것과는 달리, 

자바스크립트는 비교연산자로 '=='(동등 연산자)와 '==='(일치 연산자)를 구분해서 사용한다.

 

쉽게 두 연산자의 차이를 설명하면

'==' 는 값만 비교하지만,

'===' 는 값과 자료형을 함께 비교한다. 


값만 비교한다는 것이 잘 이해가 안 될 수 있는데, 이는 자바스크립트의 특성 때문이다.

예를 들어, 자바스크립트에서는 1 == "1" 의 결과는 true이다.

자바스크립트에서 '=='의 경우  알아서 비교하는 내용의 형식을 변환해서(형변환 비교) 비교한다.

그렇기 때문에, 자바스크립트는 문자열 "1"을 숫자 1로 변환해서 비교해버린다.

 

따라서, 다른 언어에서 (C 등등) 비교 연산자로 '=='를 사용하듯이 자바스크립트에서 자료형까지 함께 비교하려면

'=='가 아닌 '==='를 사용해야 한다.


같은 원리로 '!=' 와 '!=='를 비교해보면

'!='는 값만 비교하고,

'!=='는 값과 자료형을 함께 비교한다.

 

요약하자면, 다른 언어에서 ==와 !=을 사용하는 것처럼 자바스크립트에서 비교연산자를 사용하려면

'==='와 '!=='를 사용하는 것이 권장된다.

 

아래 사진은 자바스크립트에서의 '=='과 '==='의 사용 결과 예시이다. 

Javascript에서 ==와 ===의 차이점