간단정리

[JS] 유형 비교 `==`와 엄격한 비교 `===`의 차이점

RyuK-H 2020. 7. 7. 23:23

결론 : == 유형 비교는 값만 비교, === 엄격한 비교는 타입도 비교

(1) 0은 false, 그 외 모든 것은 true이다.

// 유형 비교는 값만 비교한다.
// 0은 false 이기에 true가 된다.
// 엄격한 비교는 타입도 비교한다.
// number인 0과 false인 boolean은 타입이 다르다.

0 == false // true
0 === false // false

(2) number와 string 또한, (1)과 같은 결과가 출력 된다.

1206 == "1206" // true
1206 === "1206" // false

(3) null undefined 비교

null == undefined // true
null === undefined // false

(4) NaN

  • 이 친구는 역시 무엇가도 비교할 수 없다.
undefined == NaN // false
undefined === NaN // false
null == NaN // false
null === NaN // fasle
NaN == NaN // false
NaN === NaN // false
NaN == "NaN" // false
NaN === "NaN" // false
// NaN 검사 방법

var a = "류크";   // typeof a 는 string
a = Number(a);   // a = NaN (숫자가 아니다.)
isNaN(a);        // true

유형 비교 == 보다는 엄격한 비교 === 를 추천 한다고 한다.