我正在查看这里的代码行:
if (callback)
callback(sig || graph);
我从来没有在JavaScript方法调用中看到过垂直的"或"符号。它们是什么意思?它们传递"true"参数(即sig或graph)吗?它们传递定义的参数吗?我以前从未见过这种语法。
我正在查看这里的代码行:
if (callback)
callback(sig || graph);
我从来没有在JavaScript方法调用中看到过垂直的"或"符号。它们是什么意思?它们传递"true"参数(即sig或graph)吗?它们传递定义的参数吗?我以前从未见过这种语法。
[null, undefined, 0, '']
都被视为假。逻辑或运算符(||
)是一种运算符,根据第一个操作数是否为真,返回其第一个或第二个操作数。"真值"指的是除了 0
、undefined
、null
、""
或 false
之外的任何值。
这个运算符使用短路计算,意味着如果第一个表达式为真,那么第二个表达式不会被计算,而是立即返回第一个操作数。这类似于 逻辑与运算符(&&
),它的作用相反:如果第一个操作数为假,则返回该操作数,否则返回第二个表达式。
它表示“或” (http://www.w3schools.com/js/js_comparisons.asp)。因此,如果(sig OR graph)。
注意:使用这个方法时需要小心,因为可能会使你的代码出现“短路”的情况。例如:
If (foo || foo2)
sig
。双竖线(||)在JS中表示OR。简单来说,要么这个条件成立,要么那个条件成立,才会得到一个True
的结果。
例如:
var x = 8;
var y = 'c';
x >= 8 || y === 'a'
双竖线的左侧返回True
,而右侧返回False
。因此,结果是True
。
运算符 || 表示或。
如果 sig 或 graph 为 true 或非空变量,则回调函数将接收一个 true 参数。
false
;它会返回右侧的值,无论它是什么(因此,可能是0
或""
)。 - Pointyfalse
或nil
默认到另一个值,而不是从任意“falsy”对象(如0值、空序列等))。 - ShadowRanger