我们知道在JS中,[] == false
返回true
。但是今天我正在观看Kyle Simpson的视频演示,我看到了:
[] == ![] // true
![]
怎么也很虚假。按照我的逻辑,应该为true
。
答案 0 :(得分:0)
==允许强制。也是!操作员。因此[] ==![]变成“” == false,这是对的。另外[!]为true,因为[]是一个值为真值的对象。否定该结果将导致错误。
答案 1 :(得分:0)
在Javascript中,而不是运算符(!
)检查是否没有像!(true)
这样的条件,这里首先检查()
的内部,如果返回true
,则实际输出变为false
。
(true)
=> !(true) =>
错误
(错误)=>
!(错误)=>
是`
回到原始问题
[]
返回true
,其中,当您严格与![]
比较时,false
返回===
时,其对type
和value
的检查。
console.log([]); // true
console.log(![]); // false
console.log([] == ![]) // true
console.log([] ===![]) // false
注意,如果您一直想要
boolean
值,则可以使用!!
。
console.log(!![]); // true
console.log(!!(1 === 1)); // true