js关于空数组和Boolean值比较的有关问题

js关于空数组和Boolean值比较的问题

遇到一个很奇怪的问题:

js关于空数组和Boolean值比较的有关问题

js关于空数组和Boolean值比较的有关问题

空数组转换为布尔值明明是true,但为什么用空数组与布尔值比较时空数组又变成了false;

然后再测试下发现,问题应该就出在当空数组与布尔值比较时空数组的类型转换上:

js关于空数组和Boolean值比较的有关问题

 

空数组转换为数字时值为0,而数组与布尔值进行比较时js引擎会将双方都转换为数字再进行比较(非空数组转换为数字为NaN);

 

所以:

[]==false就相当于0==0