Equal Operator (==)
JavaScript에서는, == 연산자로 피연산자를 비교할 때, 두 피연산자를 비교할 수 있는 형태로 먼저 변환시켜서 비교한다.
즉, 두 피연산자의 자료형이 같지 않다면 형변환이 먼저 일어난다.
console.log(123 == "123"); //true
console.log(true == 1); //true
console.log(true == "1"); //true
console.log(true == "true"); //false
console.log(null == "false"); //false
console.log(null == false); //false
console.log(null == undefined); //true
물론 != 의 경우는 정반대의 output.
** null
과 undefined
는 비교 연산에서 직관적이지 않은 결과를 내뿜기 때문에, 피연산자로 사용을 지양하는 것이 좋다.
Strict Equal Operator (===)
=== 연산자는 == 연산자와 다르게, 비교할 때 피연산자를 형변환하지 않는다.
따라서, 아래와 같은 결과가 나온다.
console.log(123 === 123); //true
console.log(123 === "123"); //false
console.log(true === 1); //false
console.log(true === "1"); //false
console.log(null === undefined); //false
마찬가지로 !== 의 경우 정반대의 output.