||是什么意思在JavaScript中?

时间:2015-05-07 17:59:26

标签: javascript

我正在查看来自here的这些代码行:

    if (callback)
        callback(sig || graph);

我从未在javascript方法调用中看到垂直“或”栏。他们的意思是什么?他们是否通过了“真实”参数(即sig或图表)?他们是否通过了定义的参数?我以前从未见过这种语法。

6 个答案:

答案 0 :(得分:17)

这是JS(以及大多数其他语言)中的逻辑OR运算符。它是defined in the spec at 11.11。如规范中所述,将首先评估任一侧的表达式,逻辑OR为left-to-right associative。请注意,操作数的评估遵循标准ToBoolean semantics from section 9.2,因此[null, undefined, 0, '']都算作假的。

与大多数语言不同,如果左操作数是真值,则JS返回左操作数,否则返回右操作数。在许多SO问题中,这种行为has been covered before,但值得注意的是,因为大多数语言只返回true或false。此行为通常用于provide default values以及其他未定义的变量。

答案 1 :(得分:6)

Logical OR operator (||)是一个运算符,它返回第一个或第二个操作数,具体取决于第一个操作数是否真实。 “truthy”值表示除0undefinednull""false以外的任何内容。

此运算符使用短路,这意味着如果第一个表达式是真实的,则不计算第二个表达式,并立即返回第一个操作数。这类似于Logical AND operator (&&),它执行相反的操作:如果第一个操作数为false,则返回它,否则返回第二个表达式。

答案 2 :(得分:0)

它通过任何评估为真,或sig如果两者都为真。

答案 3 :(得分:0)

这意味着'或'(http://www.w3schools.com/js/js_comparisons.asp)所以如果(sig OR graph)

小心您可以使用此方法“短路”您的代码。 例如:

If (foo || foo2)

如果foo为true,那么JavaScript根本不会测试foo2,它只是跳过它。

答案 4 :(得分:-1)

运营商||是指OR。

如果sig或graph为true或非null变量,则回调函数将收到一个真正的参数。

答案 5 :(得分:-1)

双管道(||)表示JS中的OR。简而言之,就是True。要获得True的结果,需要任何一方为真。

例如:

var x = 8;

var y ='c';

x> = 8 || y ==='a'

双管道的左侧返回True,其中右侧为False。因此,结果为True