본문 바로가기
Language/JavaScript

[JavaScript] === 와 == 의 차이

by 며루치꽃 2021. 1. 5.

=== 와 == 의 차이 

=== : 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가지 경우입니다.

 

  1. 0
  2. ''
  3. undefined
  4. null
  5. NaN
const age = '18'

if (age === 18){
    console.log("strict")
} else {
    console.log("loose")
}

if 문에 age가 === 이기 때문에  강제적 형변환(type coercion)이 이뤄지지 않습니다. 

그래서 else의 경우인 "loose" 를 출력하게 됩니다. 

댓글