我有疑问,因为我不确定,也无法在 Stack Overflow 上找到关于此的答案。
这究竟意味着什么:
variable = variable || {}
或类似的东西:
this.pointX = options.pointX || 6;
我知道它分配给variable
avariable
如果它存在或empty Object
变量不存在,但为什么它会起作用?
是||
不是这里的“或”的意思?
我有疑问,因为我不确定,也无法在 Stack Overflow 上找到关于此的答案。
这究竟意味着什么:
variable = variable || {}
或类似的东西:
this.pointX = options.pointX || 6;
我知道它分配给variable
avariable
如果它存在或empty Object
变量不存在,但为什么它会起作用?
是||
不是这里的“或”的意思?
它||
像 SQLCOALESCE
语句一样有效地工作。
var x = y || z;
方法:
如果y
评估为“真实”值,则分配y
给x
.
如果y
评估为“虚假”值,则分配z
给x
.
请参阅http://11heavens.com/falsy-and-truthy-in-javascript以获取有关“truthy/falsy”的更多详细信息(或只是谷歌它)。
是||
一个or
运算符。
它基本上意味着如果variable
未定义,它将分配variable
给一个新的对象文字。
运算符返回确定其“真实性”值的||
实际对象,而不仅仅是布尔值(true
或false
)。它“短路”,因为一旦它可以确定结果,它就会停止。
如果variable
真实性值为true
,则返回(因为当与任何true
内容or
一起 ed 时,结果为true
)。否则,返回第二个操作数(即使它的真实性值为false
),因为它决定了整个表达式的真实性。
||
这里的意思是或:
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.
this.pointX = options.pointX || 6;
this.pointX
表示如果可用(即不为空)分配options.pointX
值,否则分配值6
|| JavaScript 中的运算符与您会发现的其他一些语言不同。当 JavaScript 求值时 || 它似乎返回一个操作数或另一个。如果任何操作数评估为真,它不会进行典型的真值表评估,如果不是,则评估为假。