0

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

这究竟意味着什么:

variable = variable || {}

或类似的东西:

this.pointX = options.pointX || 6;

我知道它分配给variableavariable如果它存在empty Object变量不存在,但为什么它会起作用?

||不是这里的“或”的意思?

4

6 回答 6

3

||像 SQLCOALESCE语句一样有效地工作。

var x = y || z;

方法:

如果y评估为“真实”值,则分配yx.

如果y评估为“虚假”值,则分配zx.

请参阅http://11heavens.com/falsy-and-truthy-in-javascript以获取有关“truthy/falsy”的更多详细信息(或只是谷歌它)。

于 2013-05-24T20:20:36.587 回答
2

||一个or运算符。

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

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

于 2013-05-24T20:21:55.603 回答
1

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

如果variable真实性值为true,则返回(因为当与任何true内容or一起 ed 时,结果为true)。否则,返回第二个操作数(即使它的真实性值为false),因为它决定了整个表达式的真实性。

于 2013-05-24T20:21:19.507 回答
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.
于 2013-05-24T20:23:24.177 回答
-1
this.pointX = options.pointX || 6;

this.pointX表示如果可用(即不为空)分配options.pointX值,否则分配值6

于 2013-05-24T20:20:26.633 回答
-1

|| JavaScript 中的运算符与您会发现的其他一些语言不同。当 JavaScript 求值时 || 它似乎返回一个操作数或另一个。如果任何操作数评估为真,它不会进行典型的真值表评估,如果不是,则评估为假。

于 2013-05-24T20:22:15.540 回答