开发者社区> 问答> 正文

JavaScript:空数组,[]在条件结构中评估为true。为什么是这样?

我在代码中遇到了很多错误,因为我期望这个表达式:

Boolean([]); 评估为假。

但是事实并非如此,因为它评估为true。

因此,可能返回的函数[]如下所示:

// Where myCollection possibly returned [ obj1, obj2, obj3] or [] if(myCollection) { // ...

}else { // ... } 没有做预期的事情。

我是否以为[]空数组是错误的?

另外,此行为在所有浏览器中是否一致?还是那里也有陷阱?顺便说一下,我在Goolgle Chrome中观察到了这种行为。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 19:13:20 468 0
1 条回答
写回答
取消 提交回答
  • 以下值始终是虚假的:

    假 0(零) “”(空字符串) 空值 未定义 NaN(特殊的数字值,表示非数字!) 所有其他值均为真,包括“ 0”(引号为零),“ false”(引号为false),空函数,空数组和空对象。

    2020-02-08 19:13:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载