값 비교하다가 이상한 걸 봤는데요, 빈 배열이랑 그 배열의 부정이 같다고 나와요. 다른 비교들도 결과가 헷갈려요.
console.log([] == ![]);
console.log("" == 0);
console.log(null == 0);
console.log("0" == false);
true
true
false
true
[] == ![]가 true라니 말이 안 되는 것 같은데요. == 이 타입을 강제로 맞추면서(coercion) 단계별로 어떻게 바뀌길래 이런 결과가 나오는 건가요? 그래서 항상 ===를 쓰라는 건가요?