`if([])`结果是什么,似乎不是假的

时间:2016-09-08 12:54:32

标签: javascript

我从之前的代码运行中得到一个空数组,我想在if语句中检查它是否为空,我用过

if (emptyArr) {
  //do something here. 
}

起初,收到了一些奇怪的结果,现在我知道我应该使用if (emptyArr.length === 0 ) {}代替,但仅仅是为了好奇,上面的代码块会导致什么?

2 个答案:

答案 0 :(得分:2)

空数组仍然是一个对象,对象引用始终是true谓词中的if。因此

if ([]) alert("hello world");

将始终触发警报。

答案 1 :(得分:-1)

typeof []
"object"

因为if({})证明是真的,if([])也是如此。

以下是关于Why object is true

的问题