=== 와 == 의 차이
=== : strict equality operator : 동일한 비교를 수행하지만 strict이기 때문에, 강제적 형변환(type coercion) 을 실행하지 않습니다. 형식이 다른 경우 false가 반환됩니다.
'18' == 18 // true
'18' === 18 // false
위의 경우는 강제적 형변환(type coercion)을 허용하기 떄문에 결과는 true가 나오지만
아래의 경우는 강제적 형변환(type coercion)을 허용하지 않기 때문에 각각 String 과 number 형태이기 때문에, 형식이 달라 false를 반환하게 됩니다.
JavaScript에서 false로 판단하게 되는 경우(falsy values)는 5가지 경우입니다.
- 0
- ''
- undefined
- null
- NaN
const age = '18'
if (age === 18){
console.log("strict")
} else {
console.log("loose")
}
if 문에 age가 === 이기 때문에 강제적 형변환(type coercion)이 이뤄지지 않습니다.
그래서 else의 경우인 "loose" 를 출력하게 됩니다.
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] expression 과 statement의 차이 (0) | 2021.01.05 |
---|---|
[JavaScript] 화살표 함수(arrow fuction) (0) | 2021.01.05 |
[JavaScript] 강제적 형변환(type coercion) (0) | 2021.01.04 |
[JavaScript] 스프레드(spread) 문법 (0) | 2020.09.23 |
[JavaScript] 호출 스택과 이벤트 루프 (0) | 2020.09.19 |
댓글