==은 Equal Operator이고,
===는 Strict Equal Operator이다.
a == b 라고 할 때, a와 b의 값이 같은지를 비교해서
같으면 true, 다르면 false라고 한다. (값만 같으면 true)
Strict, 엄격한 Equal Operator로써, "엄격하게" 같음을 비교할 때 사용하는 연산자이다
===는 a === b라고 할 때, 값과 값의 데이터 타입이 모두 같은지를 비교, 같으면 true, 다르면 false라고 한다.
값은 똑같이 1이지만 값의 종류가 숫자냐, 문자열이냐에 따라 === 연산자를 사용할 때 결과가 false라고 나온다.
let a = 1;
let b = "1";
console.log(a == b); // true
console.log(a === b); // false
null과 undefined는 공통적으로 값이 없음을 뜻하지만, 데이터 타입이 다르기 때문에,
=== 연산자를 사용할 때 결과가 false라고 나온다
console.log(null == undefined); // true
console.log(null === undefined); // false
기본적으로 1은 true, 0은 false로 나타낼 수 있지만, 데이터 타입은 다르다.
console.log(true == 1); // true
console.log(true === 1); // false