我有疑问,因为我不确定,也无法在Stack Overflow上找到答案。
这究竟意味着什么:
variable = variable || {}
或者:
this.pointX = options.pointX || 6;
据我所知,如果存在<{1}},则variable
分配variable
如果变量不存在则分配给empty Object
但是为什么它会工作?
||
不是'或'在这里吗?
答案 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
分配给新的对象文字。
答案 2 :(得分:1)
||
运算符返回确定其“真实性”值的实际对象,而不仅仅是布尔值(true
或false
)。它“短路”,一旦它可以确定结果,它就会停止。
如果variable
的真实性值为true
,则会返回(因为当true
or
为true
时,结果为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。