为什么如果 ([].length) {console.log('true');} else console.log('false'), 得到 false?



我刚刚看到一个js问题,它是:

结果是什么:

if ([]) {console.log(1);}  
if ([].length) {console.log(2);}  
if ({} === {}) {console.log(3);}  
if ('' == 0) {console.log(4);}

我试过控制台,它给出了

1
4

为什么[].length给出false?长度是否未定义?

空数组的长度是0,它是一个"falsy";值。

参见MDN以获取更多参考:

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length
  • https://developer.mozilla.org/en-US/docs/Glossary/Falsy

最新更新