== 와 === 의 차이점

홍예림·2023년 1월 9일
0
post-thumbnail

서론

비교연산자(Comparison operators)란

비교연산자⁰란 피연산자를 서로 비교해 Boolean값(ture 또는 false)을 반환하도록 하는 기호입니다.
자세한 비교연산자 목록은 여기에서 알아볼 수 있습니다. 오늘의 주제인 동등(==)일치(===) 는 비교연산자의 한 종류로, '피연산자가 서로 같으면 ture를 반환한다'는 관점에서 동일해 보입니다. 차이점은 무엇일까요?

본론

JavaScript에서 같음

JavaScript에는 3가지 같음(equality)이 있습니다만, 이번 게시글에서는 그 중에서 두 가지 같음만 비교할 예정입니다.
► 느슨한 같음(loose equality) :: 비교연산자 이중 등호(==) 사용
► 엄격한 같음(strict equality) :: 비교연산자 삼중 등호(===) 사용

형식을 변환해 비교하는 == vs 변환하지 않고 비교하는 ===

'느슨한 같음'은 피연산자를 같은(common) 형태로 변환한 후에 비교합니다. 따라서 피연산자의 형태(String, Number 등)를 상관하지 않습니다. 반면에, '엄격한 같음'은 피연산자는 형태가 다르면 동일하지 않다고 판단합니다.

"1" == 1
true
"1" === 1
false

또한 null 과 undifined를 '느슨한 같음'은 동일하게, '엄격한 같음'은 동일하지 않다고 판단합니다.
[1, 2] 와 '1, 2'를 '느슨한 같음'은 동일하게, '엄격한 같음'은 동일하지 않다고 판단합니다.
다양한 비교 예시는 여기의 Comparing equality methods 문단에서 확인할 수 있습니다.

결론

데이터의 확실한 비교를 위해서는 삼중 등호(===)를 사용합시다.

참고자료


⁰ : 비교당하는 대상

profile
SYNC 5반 2023.07 - 2023.12

0개의 댓글