비교연산자⁰란 피연산자를 서로 비교해 Boolean값(ture 또는 false)을 반환하도록 하는 기호입니다.
자세한 비교연산자 목록은 여기에서 알아볼 수 있습니다. 오늘의 주제인 동등(==) 과 일치(===) 는 비교연산자의 한 종류로, '피연산자가 서로 같으면 ture를 반환한다'는 관점에서 동일해 보입니다. 차이점은 무엇일까요?
JavaScript에는 3가지 같음(equality)이 있습니다만, 이번 게시글에서는 그 중에서 두 가지 같음만 비교할 예정입니다.
► 느슨한 같음(loose equality) :: 비교연산자 이중 등호(==) 사용
► 엄격한 같음(strict equality) :: 비교연산자 삼중 등호(===) 사용
'느슨한 같음'은 피연산자를 같은(common) 형태로 변환한 후에 비교합니다. 따라서 피연산자의 형태(String, Number 등)를 상관하지 않습니다. 반면에, '엄격한 같음'은 피연산자는 형태가 다르면 동일하지 않다고 판단합니다.
"1" == 1
true
"1" === 1
false
또한 null 과 undifined를 '느슨한 같음'은 동일하게, '엄격한 같음'은 동일하지 않다고 판단합니다.
[1, 2] 와 '1, 2'를 '느슨한 같음'은 동일하게, '엄격한 같음'은 동일하지 않다고 판단합니다.
다양한 비교 예시는 여기의 Comparing equality methods 문단에서 확인할 수 있습니다.
데이터의 확실한 비교를 위해서는 삼중 등호(===)를 사용합시다.
⁰ : 비교당하는 대상