JS的空数组是true还是false(内附JS类型转换表)

在和大佬们沟通的时突然说起了这个问题。
就在控制台中打印了一下。

 [] == ![]    //true

我满脸问号????

  

这么看空数组是false

但是数组是一个对象,对象不可能为false啊!!
把数组转成布尔值的情况下就是true了

查阅资料后发现:任意值与布尔值比较,都会将两边的值转化为Number。

的确是这样,但是为什么空数组转成数值是0呢?

看一下JavaScript进行类型转换的表

当Number([ ]) == false的时候,它会根据图上的表,先把内容变成‘0’,再与false比较。
所以

原文地址:https://www.cnblogs.com/JiAyInNnNn/p/12177369.html