空数组是真的,但它们也等于false.
var arr = [];
console.log('Array:', arr);
if (arr) console.log("It's true!");
if (arr == false) console.log("It's false!");
if (arr && arr == false) console.log("...what??");Run Code Online (Sandbox Code Playgroud)
我想这是由于等于运算符操作的隐式转换.
任何人都可以解释幕后发生的事情吗?
任何人都可以解释为什么以下两个陈述都评价为真?
[] == false
Run Code Online (Sandbox Code Playgroud)
和
!![]
Run Code Online (Sandbox Code Playgroud)
这个问题完全出于好奇,为什么会发生这种情况而不是如何最好地测试数组是否为空.
javascript ×2