如果[]虚假,为什么![]也是虚假的

时间:2019-08-26 03:21:11

标签: javascript

我们知道在JS中,[] == false返回true。但是今天我正在观看Kyle Simpson的视频演示,我看到了:

[] == ![]   // true

![]怎么也很虚假。按照我的逻辑,应该为true

2 个答案:

答案 0 :(得分:0)

==允许强制。也是!操作员。因此[] ==![]变成“” == false,这是对的。另外[!]为true,因为[]是一个值为真值的对象。否定该结果将导致错误。

答案 1 :(得分:0)

在Javascript中,而不是运算符(!)检查是否没有像!(true)这样的条件,这里首先检查()的内部,如果返回true,则实际输出变为false。  (true) => !(true) =>错误 (错误)=>!(错误)=>是`

回到原始问题 []返回true,其中,当您严格与![]比较时,false返回===时,其对typevalue的检查。

 console.log([]); // true
 console.log(![]); // false
 console.log([] == ![]) // true
 console.log([] ===![]) // false

 

  

注意,如果您一直想要boolean值,则可以使用!!

 console.log(!![]); // true
 console.log(!!(1 === 1)); // true