[JS] 비교연산자 '==' & '===' 차이?

박두팔이·2024년 2월 2일
0

자바스크립트

목록 보기
3/9

자바스크립트의 ==와 === 비교 연산자 차이점

자바스크립트에서 =====는 값의 동등성을 비교할 때 사용되는 두 가지 중요한 연산자입니다. 하지만 두 연산자는 동작 방식에서 중요한 차이를 가지고 있으며, 이 차이를 이해하는 것은 안정적인 코드를 작성하는 데 필수적입니다.

== (동등 연산자)

  • == 연산자는 '느슨한 비교(loose equality)'를 수행합니다.
  • 비교하는 두 값의 타입이 다를 경우, 자바스크립트는 타입 변환(type coercion)을 시도하여 두 값을 같은 타입으로 만든 후 값이 같은지 비교합니다.
  • 이로 인해 예상치 못한 결과가 발생할 수 있으며, 코드의 예측 가능성이 떨어질 수 있습니다.
  • 예시: 0 == '0'true를 반환합니다. 숫자 0과 문자열 '0'이 타입 변환을 통해 같은 값으로 간주됩니다.

=== (일치 연산자)

  • === 연산자는 '엄격한 비교(strict equality)'를 수행합니다.
  • 비교하는 두 값의 타입과 값이 모두 같아야 true를 반환합니다. 타입 변환이 일어나지 않습니다.
  • 코드의 안정성과 예측 가능성을 높여주며, 대부분의 경우 === 연산자 사용이 권장됩니다.
  • 예시: 0 === '0'false를 반환합니다. 숫자 0과 문자열 '0'은 타입이 다르기 때문에 엄격한 비교에서는 같지 않은 것으로 평가됩니다.

결론

  • 자바스크립트에서는 예기치 않은 타입 변환으로 인한 버그를 방지하기 위해 가능한 === 연산자를 사용하는 것이 좋습니다.
  • 코드의 명확성과 안정성을 위해 == 연산자의 사용은 최소화하고, 값과 타입이 모두 일치하는지 확인하는 === 연산자의 사용을 선호합니다.
profile
기억을 위한 기록 :>

0개의 댓글