The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:
[] == false
[] == ![]
3 == "03"
— The eslint docs, all said.