1、==运算符的优先级小于!运算符所以先计算![];
2、![]:逻辑运算会先将非布尔类型的值隐式转换成布尔类型,所以这里转换成!true,得到结果是false;
3、上述步骤得到现比较[]==false,关系运算时默认会都转成数字类型做比较;
a) []:引用类型转换为number类型时会先调用toString方法得到空字符串再转换成Number类型为0;
b)false:转换为Number类型后为0;
所以0==0,为true,最终结果就是[] == ![]为true;
原文:https://www.cnblogs.com/Phantom0308s/p/14096535.html