==
와 ===
, !=
와 !==
비슷해 보이지만 자세히 보면 서로 다른 연산자이다.
그동안 둘의 차이를 대충 어렴풋이 알고 있었고 종종 헷갈려서 이에 대해 정리하기 위해 글을 작성하게 되었다.
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
동등 비교 연산자 (==
, !=
) 와 일치 비교 연산자 (===
, !==
) 의 가장 큰 차이점은 형변화을 하냐 안하냐 인 것 같다.
동등 비교 연산자 (==
, !=
)는 형변화을 해 두 피연산의 자료형을 일치시킨 뒤, 서로 같은지를 비교를 진행한다.
반면 일치 비교 연산자는 (===
, !==
)는 형변환을 하지 않은 상태에서 두 피연산자가 서로 같은지 비교를 진행한다.
따라서 일치 비교 연산자 (===
, !==
)는 두 피연산자의 자료형 까지 모두 일치/불일치 해야하는 경우에 사용 하면 될 거 같다.