使用||在javascript中初始化对象 操作者

Kai*_*Kai 20 javascript

有时我在javascript代码中看到这样的东西:

var myObj = myObj || {};
Run Code Online (Sandbox Code Playgroud)

那么,这里究竟发生了什么?我想|| operator返回true或false,但它不正确.

cdh*_*wie 31

如果||运算符的计算结果为true,则运算符返回左运算数,否则运算符将计算并返回正确的操作数.换句话说,a || b等效于a ? a : b所不同的是a只计算一次.

  • +1在JavaScript中也称为*null合并运算符*http://stackoverflow.com/questions/476436/null-coalescing-operator-for-javascript/476445#476445 (2认同)
  • 不,它只能用作 C# 的空合并运算符 (`??`) 的*替换*。:) 我从来没有听说过 `||` 被称为“空合并运算符;” 它一直是“逻辑或”运算符。 (2认同)

Joe*_*ang 5

要了解|| 运算符,让我们首先看一个相当基本的例子.逻辑OR运算符可用于为定义的变量提供默认值,如下所示:

 var bar = false,  
 foobar = 5,  
 foo = bar || foobar; // foo = 5  
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果bar被认为是假的,则foo将仅被赋予foobar的值.可以认为假值等于0,假,未定义,空,NaN或空(例如"").