==는 동등 연산자로, 피연산자가 서로 다른 타입일 경우 타입을 강제로 변환하여 비교한다.
=== 일치 연산자로 값 뿐만 아니라 형까지 비교를 한다.
그러므로 ===가 엄격한 비교를 한다고 할 수 있겠다.
예를들어,
0 == false // true
0 === false // false
2 == '2' // true
2 === '2' // false
null == undefined // true
null === undefined // false
0 == [] // true
0 === [] // false
예시를 보면 알겠지만 ==연산자를 사용한 결과가 어느정도 납득이 되는 것도 있지만 왜 이런지 납득이 안가는 경우도 상당히 많을 것 같다.
결론은 무언가를 비교해야하는 로직이 필요할때는 ===연산자를 사용할 것을 추천한다.