==// 숫자와 문자
console.log(1 == "1") // true
// 공백(문자) 와 0
console.log('' == 0); // true
// 배열 비교
console.log(0 == []); // true
console.log("0" == []); // false
console.log("" == []); // true
console.log([1] == 1); // true
console.log(["1"] == 1); // true
console.log(["1"] == "1"); // true
// 숫자와 boolean 타입
console.log(0 == false) // true
console.log(1 == true) // true
// 문자와 boolean 타입
console.log(true == "true") // false
// null과 undefined
console.log(null == undefined) // true
===// 숫자와 문자
console.log(1 === "1") // false
// 공백(문자) 와 0
console.log('' === 0); // false
// 배열 비교
console.log(0 === []); // false
console.log("0" === []); // false
console.log("" === []); // false
console.log([1] === 1); // false
console.log(["1"] === 1); // false
console.log(["1"] === "1"); // false
// 숫자와 boolean 타입
console.log(0 === false) // false
console.log(1 === true) // false
// 문자와 boolean 타입
console.log(true === "true") // false
// null과 undefined
console.log(null === undefined) // false
=== 사용할 것== 을 사용하면 타입이 변환되면서 false를 의도한 동작도 true로 반환될 수 있다.두 비교 연산자의 차이는 알고 있었지만 0 == [], null == undefined 등 전혀 다른 데이터도 true로 반환될 수 있다는 것을 알게 되어 조금 충격이 크다.
그러면서 “0” == [] 의 결과는 false인 것도 정말 당황스러운 내용이었다..
의도한 대로 굴러가기 위해서는 === 을 생활화하자🥲