본문 바로가기
Language/JavaScript

[JavaScript] == vs ===

by J4J 2021. 6. 16.
300x250
반응형

안녕하세요. J4J입니다.

 

이번 포스팅은 ==과 ===를 비교해보는 시간을 가져보려고 합니다.

 

 

==

 

자바스크립트에서 사용되는 == (equal)은 다음과 같은 특징을 가지고 있습니다.

 

  • 값을 비교할 때 사용됨
  • 강제 형 변환을 먼저 수행한 뒤 값이 같은지를 비교

 

좀 눈에띄는 특징은 강제 형 변환을 먼저 수행한다는 것입니다.

 

강제 형변환을 하기 때문에 타입이 서로 다르지만 값이 같을 경우에는 true를 반환하게 되어 실수 값과 문자열을 비교하더라도 true가 나올 수 있는 상황이 발생됩니다.

 

간단한 예시를 들면 다음과 같은 결과들이 나올 수 있습니다.

 

<script>
    console.log(1 == '1'); // true
    console.log(1 == 1) // true
    console.log(3.14 == '3.14') // true
    console.log(3.14 == 3.14) // true
    console.log(true == 'true') // false
    console.log(true == true); // true
    console.log('hungry' == 'hungry') // true
</script>

 

 

반응형

 

 

===

 

자바스크립트에서 사용되는 === (strict equal)은 다음과 같은 특징을 가지고 있습니다.

 

  • 값을 비교할 때 사용됨
  • 타입과 값을 모두 같은지를 비교

 

간단하게 ===은 ==보다 더 엄격한 비교를 하는 것입니다.

 

==과 달리 값 뿐만 아니라 타입까지도 동일한지를 확인하기 때문에 일반적으로 값을 비교할 때는 ===를 사용하는 것이 더 안전한 코딩을 할 수 있다고 생각합니다.

 

간단한 예시를 들면 다음과 같은 결과들이 나올 수 있습니다.

 

<script>
    console.log(1 === '1'); // false
    console.log(1 === 1) // true
    console.log(3.14 === '3.14') // false
    console.log(3.14 === 3.14) // true
    console.log(true === 'true') // false
    console.log(true === true); // true
    console.log('hungry' === 'hungry') // true
</script>

 

 

 

 

 

이상으로 ==과 ===를 비교해보는 시간이었습니다.

 

읽어주셔서 감사합니다.

728x90
반응형

댓글