비교 연산자
는 좌항, 우항의 식 또는 값을 비교하여 true/false를 반환하는 연산자입니다. 비교 연산자
의 종류는 다음과 같습니다.
==
과 ===
, !=
과 !==
는 자바스크립트의 특징적인 문법입니다. 변수 선언에서 자바스크립트는 아주 자유롭기 때문에 위와 같은 연산자를 사용하게 되었습니다.
==
과 !=
는 값이 같은 지를 비교하지만 자료형을 신경쓰지 않는 비교를 합니다. 오직 값만 신경쓰기 때문에 다음과 같은 식이 성립합니다.
console.log(1 == true); //true
console.log(1 == '1'); //true
이러한 동작을 보이는 이유는, ==
과 !=
는 비교과정에서 좌우 항의 자료형을 동일하게 만들고 비교하기 때문입니다.
반면, ===
과 !==
는 값과 자료형을 둘 다 비교합니다. 좌우 항의 자료형을 동일하게 만드는 과정 없이 값과 자료형을 검사합니다. 그러므로 일반적인 조건 상황에서 사용할 때는 ===
과 !==
를 사용하는 것을 권장드립니다.
console.log(1 === true); //false
console.log(1 === '1'); //false
console.log(1 === 1); //true
참조형은 일반형과 다르게 값이 저장되어있는 주소를 비교하므로 비교 연산자를 사용해서 참조형을 비교하고자 할 때는 주의해야합니다.
다음과 같이 동일한 요소를 가진 배열을 할당하더라도 저장된 주솟값이 다르므로 두 변수를 다르게 판별합니다.
let arr1 = ['가', '나'];
let arr2 = ['가', '나'];
console.log(arr1 == arr2); //false