数组、对象数据类型比较
1、为什么[] == ![] 是true 而 {} == !{} 却为false吗
通过==比较时,遵循这个规则:
如果相等操作符两边的操作数,不包含 null 或者 undefined,且两个操作数不全是对象,在执行相等比较之 前,会先调用 Number() 将两个操作数强制转为 Number 类型,然后进行比较。
!优先级高于==,先取反,取反遵循这个规则:
除了undefinef,null,0,''取反是true,其他都为false。
所以上面是number([])==number(false)和number({})==number(false)
即0==0和nan==0,即true和false。