如果在JavaScript中空数组
[]
被认为是falsy的,那么为什么当它作为三元运算符中的谓词时,该运算符会评估为第一个选项?console.log([] == false); // prints true
console.log([] ? 0 : 1); // prints 0 !
console.log([]===false);
? - lucas[]===false
进行检查。 - ojovirtual[]===false
是假的,但[]==false
是真的。我猜这归结于JavaScript如何评估[]
的类型。 - OliverRadiniif ([]) { }
等同于if ([] == true) { }
,但在 JS 中并非如此,因为==
在比较两个不同类型的操作数时具有非平凡的行为(请查看文档和 ojovirtual 的帖子)。 - Holt[]===false
是false
;这并不令人惊讶。 - Marcus Junius Brutus