hanker

[JavaScript] ==과 ===의 차이 (동등 비교 연산자) 본문

JavaScript

[JavaScript] ==과 ===의 차이 (동등 비교 연산자)

hanker 2025. 6. 9. 02:05
반응형

JavaScript를 사용하면서 혼란스러운 개념인 == ===의 차이를 한번 알아보자.

 


==, ===의 차이

 

  • == : 느슨한 비교
    • 타입 변환을 수행한 후 값을 비교
    • 서로 다른 타입이어도 변환 후 같은 값이면 true를 반환
    • abstract equality 라고도 불린다.
    • null과 undefined를 동시에 체크할 때 유용

 

  • === : 엄격한 비교
    • 타입과 값을 모두 비교
    • 타입이 다르면 무조건 false 반환
    • 타입 변환을 수행하지 않음
    • 성능이 ==보다 빠르지만(타입 변환 과정 생략) 미미

 

 

예시 

// 같은 타입, 같은 값
console.log(5 === 5);        // true
console.log("hello" === "hello"); // true

// 다른 타입, 같은 값
console.log(5 == "5");       // true (문자열 "5"가 숫자 5로 변환됨)
console.log(5 === "5");      // false (타입이 다름)

// 불린과 숫자
console.log(true == 1);      // true (true가 1로 변환됨)
console.log(true === 1);     // false (타입이 다름)

console.log(false == 0);     // true (false가 0으로 변환됨)
console.log(false === 0);    // false (타입이 다름)

결과

 


정리
특징 == ===
타입 변환 수행함 수행하지 않음
비교 기준 값만 비교 타입 + 값 모두 비교
성능 상대적으로 느림 상대적으로 빠름
예측 가능성 낮음 높음
권장도 특별한 경우만 일반적으로 권장

 

 

반응형