==, === 차이

HSKwon·2022년 7월 1일
0

비교 연산자
==와 ===, !=와 !==는 비슷해 보이지만 자세히 보면 서로 다른 연산자이다.
그동안은 둘의 차이를 잘 모르는 상태에서 그냥 사용했지만, 오늘은 이에 대해 알아보도록 한다.

javascript는 엄격한 비교(일치 비교)와 형변환 비교(동등 비교)의 두 가지 비교 방법을 가지고 있다.

동등 연산자 (==)
두 피연산자의 자료형을 일치시킨 후, 엄격하게 비교를 수행

1 == 1 // true
"1" == 1 // true
1 == '1' // true
0 == false // true
0 == null // false

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

부등 연산자 (!=)
두 피연산자의 자료형을 일치시킨 후, 엄격하게 비교를 수행

1 != 2 // true
1 != "1" // false
1 != '1' // false
1 != true // false
0 != false // false

일치 연산자 (===)
자료형 변환 없이 두 피연산자가 엄격히 같은지 판별

3 === 3 // true
3 === '3' // false

불일치 연산자 (!==)
자료형 변환 없이 두 피연산자가 엄격히 같은지 판별
두 피연산자가 같지 않거나, 같은 자료형이 아닐 때 true를 반환

3 !== '3' // true
4 !== 3 // true

정리
정리하자면 동등 비교 연산자(==, !=)와 일치 비교 연산자(===, !==)의 가장 큰 차이점은 형변환을 하냐 안하냐이다.

동등 비교 연산자(==, !=)는 형변환을 해 두 피연산자의 자료형을 일치시킨 뒤, 서로 같은지 비교를 진행한다.

반면 일치 비교 연산자(===, !==)는 형변환을 하지 않은 상태에서 두 피연산자가 서로 같은지 비교를 진행한다.

따라서 일치 비교 연산자(===, !==)는 두 피연산자의 자료형까지 모두 일치/불일치해야하는 경우에 사용하면 적절할 듯 하다.

참고 사이트
비교 연산자 - JavaScript | MDN

profile
공부한 내용이나 관심 있는 정보를 글로 정리하며 익숙하게 만들고자 합니다.

0개의 댓글