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
반응형
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] This와 Call, Apply, Bind (0) | 2021.06.21 |
---|---|
[JavaScript] Lexical Scope (0) | 2021.06.20 |
[JavaScript] 실행 문맥 (Execution Context) (0) | 2021.06.20 |
[JavaScript] 함수 표현식 / 함수 선언식 (0) | 2021.06.15 |
[JavaScript] 호이스팅 (Hoisting) (0) | 2021.06.14 |
댓글