==, === 차이점

·2022년 8월 20일
0

자바스크립트에서는 값을 비교하기 위해 == 연산자와 === 연산자를 사용한다.

두 연산자는 값이 일치하면 true를 반환하고 값이 일치하지 않으면 false를 반환한다.

두 연산자가 반환해 주는 값은 같은데 그렇다면 이 둘의 차이점은 뭘까??

간단하게 설명하면 ===는 엄격한 동치 연산자, ==는 느슨한 동치 연산자 또는 추사적 동치 연산자라고 부른다. 부르는 이름부터 알 수 있듯이 ===는 엄격하게 데이터 타입까지 값이 같아야 true를 반환하고 ==는 타입 비교 없이 값만 같으면 바로 true를 반환해 주는 것이다.

== 연산자

10 == 10    // true
10 == '10'  // true
true == 1   // true
true == '1' // true
null == undefined // true

이렇게 타입까지는 비교하지 않고 값만 같다면 바로 true를 반환해 주는 것을 볼 수 있다.
'10'이라는 문자열이 있으면 문자열을 숫자로 변환 후에 값을 비교해 주는 것이다.
또 null과 undefined는 엄연히 다르지만 == 연산자는 true를 반환한다.

=== 연산자

10 === 10   // true
10 === '10' // false
true === 1  // false
true === 'true' // false
null === undefined // false
NaN === NaN // false

=== 연산자는 타입이 다르면 타입 변환 없이 바로 false를 반환한다.
NaN값은 자기 자신을 포함하여 어떠한 값과도 일치하지 않는다. 즉 === 연산자에 NaN값이 존재하는 경우는 항상 false이다.

profile
파워블로거입니다 주인이 힘이 센 건 아니고 그냥 하고 싶습니다

0개의 댓글