什么是“||”在javascript数组创建中意味着什么?

时间:2013-10-17 14:24:51

标签: javascript

我在javascript方面有很多经验,但今天我第一次遇到这样的代码:

var _array = _array || [];
_array.push(['someItem']);

sedond系列很有意思,但我对第一行没有任何想法 - 那里的||是什么,为什么不是var _array = [];呢?

我已经对谷歌做了一些研究,但我没有得到任何线索这个奇怪的建筑真正做了什么。能请你赐教吗?

  • 那奇特的建筑是什么?
  • 那个和简单的数组声明有什么区别?
  • 为什么有人会用它?当我看到这行代码时,我的眼睛受伤了......

修改

我完全清楚||是一个逻辑OR(以及逻辑OR如何工作的方式)但我从未见过这种方式 - 在变量声明中。< / p>

3 个答案:

答案 0 :(得分:4)

检查是否定义了_array,否则,它会为其分配一个数组。基本上是“使用现有或分配新”的方案。

然后第二行可以安全地运行,因为_array(可能)是现有数组,或者是新创建的数组,由第一行提供。

答案 1 :(得分:2)

这意味着or。在这种情况下,您可以将其读作get _array variable or create new empty array if _array doesn't exist

答案 2 :(得分:1)

|字符称为管道。

在对||中使用时,它代表logical OR。 (它在其他语言中也被广泛使用)。

它将首先尝试执行最左边的表达式,如果该表达式的计算结果为false,它将执行最右边的表达式。

在我们的例子中,它测试变量_array是否存在,如果存在,它基本上将_array分配给_array。如果它还不存在,它会将_array初始化为空数组([])。


它也可以改写为三元运算符,如:

var _array = _array ? _array : [];
相关问题