它在Javascript中的确切含义(赋值变量)

时间:2013-05-24 20:16:30

标签: javascript

我有疑问,因为我不确定,也无法在Stack Overflow上找到答案。

这究竟意味着什么:

variable = variable || {}

或者:

this.pointX = options.pointX || 6;

据我所知,如果存在<{1}},则variable分配variable 如果变量不存在则分配给empty Object但是为什么它会工作?

||不是'或'在这里吗?

6 个答案:

答案 0 :(得分:3)

||实际上像SQL COALESCE语句一样工作。

var x = y || z;

表示:

如果y评估为“真实”值,请将y分配给x

如果y评估为“虚假”值,请将z分配给x

有关“truthy / falsy”(或仅http://11heavens.com/falsy-and-truthy-in-javascript)的详细信息,请参阅google

答案 1 :(得分:2)

||or运营商。

它基本上意味着如果variable未定义,它会将variable分配给新的对象文字。

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Expressions_and_Operators#Logical_operators

答案 2 :(得分:1)

||运算符返回确定其“真实性”值的实际对象,而不仅仅是布尔值(truefalse)。它“短路”,一旦它可以确定结果,它就会停止。

如果variable的真实性值为true,则会返回(因为当true ortrue时,结果为false) 。否则,返回第二个操作数(即使它的真值为{{1}}),因为它确定了整个表达式的真实性。

答案 3 :(得分:1)

||在这里的意思是:

var x = 5
var x = x || {} //If v is defined, v = v, else v = {} (new, empty, object).
//x = 5 since x already was defined

var y = y || {}
//y = {} since y was undefined, the second part is run.

答案 4 :(得分:-1)

this.pointX = options.pointX || 6;

意味着为this.pointX分配options.pointX的值(如果可用)(即非空),否则赋值为6

答案 5 :(得分:-1)

|| JavaScript中的运算符与您可以找到的其他语言不同。当JavaScript计算||时它似乎返回一个操作数或另一个操作数。如果任何操作数的计算结果为true,则不会对典型的真值表评估进行评估,如果没有,则为false。