==은 느슨한 같음(loose equality)으로 두 값이 같은지 비교한다.
두 값을 공통 형(type)으로 암묵적으로 변환.
암묵적 변환은 서로 다른 타입이면 Number 타입으로 변환하고 최종 같음 비교는 ===처럼 수행된다.
===은 엄격한 샅음(strict equality)으로 두 값이 같은지 비교한다.
형 변환은 일어나지 않고 둘이 서로 다른 형이면 둘은 같지 않다고 판단한다.
== 는 암묵적 형변환이 일어나는데, 암묵적 형변환이 일어날 것을 모두 기억하거나 예측하는 것이 어렵기 때문에, 의도하지 않은 결과를 얻게 될 가능성이 크고 이로 인해 오류 가능성이 커진다. 따라서 동등함을 비교하기 위해서 === 를 사용하는 것이 좋다.Object.is 도 있다. +0, 0, NaN, 비교 이외에는 === 연산과 동일한 결과를 준다.==, ===, Object.is 로 비교하면 false로 판단한다. 따라서 JSON.stringify 로 객체 안의 내용을 문자열로 변환한 후 비교 하거나 순서가 보장되지 않는 값이라면, 정렬 후 비교 한다.