在和大佬们沟通的时突然说起了这个问题。
就在控制台中打印了一下。
[] == ![] //true
我满脸问号????
这么看空数组是false
但是数组是一个对象,对象不可能为false啊!!
把数组转成布尔值的情况下就是true了
查阅资料后发现:任意值与布尔值比较,都会将两边的值转化为Number。
的确是这样,但是为什么空数组转成数值是0呢?
看一下JavaScript进行类型转换的表
当Number([ ]) == false的时候,它会根据图上的表,先把内容变成‘0’,再与false比较。
所以