본문 바로가기
프론트엔드/[언어] 자바스크립트

자바스크립트에서 == 와 === 의 차이?

by 도툐리 2024. 2. 26.

자바스크립트에서 ==와 === 연산자는 모두 값의 비교에 사용되지만, 두 연산자 사이에는 중요한 차이가 있습니다.

== (동등 연산자)

  • == 연산자는 "동등 연산자"로 알려져 있으며, 두 값이 같은지 비교할 때 사용됩니다.
  • 이 연산자는 타입 변환을 수행합니다. 즉, 비교하는 두 값의 타입이 다를 경우, 자바스크립트는 두 값을 동일한 타입으로 변환한 후 비교합니다. 이 과정에서 예기치 않은 결과가 발생할 수 있습니다.
  • 예를 들어, 0 == '0' 은 true를 반환합니다. 숫자 0과 문자열 '0'은 타입이 다르지만, 자바스크립트는 문자열 '0'을 숫자 0으로 변환하여 두 값이 같다고 평가합니다.

=== (일치 연산자)

  • === 연산자는 "일치 연산자"로 알려져 있으며, 두 값이 같은지 비교할 때 사용됩니다. 하지만 ==와 달리, ===는 타입 변환을 수행하지 않습니다.
  • 이 연산자는 비교하는 두 값의 타입과 값 모두가 정확히 같아야 true를 반환합니다. 즉, 타입이 다르거나 값이 다를 경우 false를 반환합니다.
  • 예를 들어, 0 === '0' 은 false를 반환합니다. 여기서 숫자 0과 문자열 '0'은 타입이 다르기 때문에, 일치하지 않는 것으로 평가됩니다.

요약

  • == (동등 연산자)는 타입 변환을 통해 두 값을 비교합니다. 이는 유연한 비교를 가능하게 하지만, 예기치 않은 결과를 초래할 수 있습니다.
  • === (일치 연산자)는 타입 변환 없이 값을 비교합니다. 이는 더 엄격한 비교를 수행하며, 일반적으로 예측 가능한 결과를 제공합니다.
  • 코드의 명확성과 오류 방지를 위해, 가능한 ===를 사용하는 것이 권장됩니다.

댓글