자바스크립트에서 ==와 ===는 비슷해 보이지만 서로 다른 비교 연산자이다. ==는 동등성을 비교하고 ===는 일치성을 비교하는데, 무슨 말인지 조금 더 자세히 살펴보자.
==
영어로는 loose equality를 비교한다고 표현한다. 말 그대로 느슨한 동등성을 비교하는 연산자이다. === 보다 느슨하게 동등성을 비교하기 때문에 강제 형변환을 수행한다.
예를 들어 숫자 77과 문자열 '77'을 == 연산자를 사용하여 비교하면 실제로는 타입이 다른 두 값이지만 자바스크립트가 수행한 강제 형변환 때문에 true 값으로 동등하다는 결과가 나온다.
77 == '77' /*true*/
===
영어로는 strict equality를 비교한다고 표현한다. 말 그대로 엄격한 동등성을 비교하는 연산자이다. == 보다 엄격히 동등성을 비교하기 때문에 ===의 경우에는 타입과 값이 둘 다 같아야 한다.
위의 예시를 이번에는 === 연산자로 비교해보자. == 연산자를 사용했을 때는 숫자 77과 문자열 '77'은 동등하다는 결과를 얻었지만 ===를 사용하면 false 값이 나온다. 일치하지 않는다는 말이다. ===는 강제 형변환을 수행하지 않기 때문에 똑같은 값이더라도 타입이 다르면 false 값을 반환한다.
77 === '77' /*false*/
'Frontend > HTML ∙ CSS ∙ JavaScript' 카테고리의 다른 글
[JS] Uncaught SyntaxError: Cannot use import statement outside a module 에러 해결 (0) | 2024.11.29 |
---|---|
[JS] toLocaleString()를 사용하여 날짜를 원하는 포맷의 문자열로 저장하기 (0) | 2024.11.29 |
[JS] crypto.randomUUID()를 사용하여 자바스크립트로 랜덤 id 생성하기 (2) | 2024.11.29 |
[JavaScript] 얕은 복사와 깊은 복사 (0) | 2023.11.06 |
[CSS] Flexbox 속성 배우기 게임, Flexbox Froggy 🐸 (0) | 2023.10.26 |