===
true === 1; // false
null === undefined; // false
==
일치 연산자 ===
와 다르게 다른 타입의 피연산자들끼리의 비교도 시도한다.
타입이 다르면 동일한 타입으로 변환한다.
숫자와 문자열을 비교할 경우, 문자열을 숫자로 변환한다.
객체와 숫자/문자열을 비교할 경우, 객체를 valueOf()나 toString()을 사용해 기본 데이터 타입으로 변환한다.
null == undefined //true
"1" == 1; // true
1 == "1"; // true
0 == false; // true
0 == null; // false
0 == undefined; // false
0 == !!null; // true, look at Logical NOT operator
0 == !!undefined; // true, look at Logical NOT operator
null == undefined; // true
const number1 = new Number(3);
const number2 = new Number(3);
number1 == 3; // true
number1 == number2; // false
/* 객체 */
const object1 = {"key": "value"}
const object2 = {"key": "value"};
object1 == object2 // false
const string3 = new String("hello");
const string4 = new String("hello");
console.log(string3 == string4); // false