||是什么意思 在JavaScript中?

ber*_*436 10 javascript

我从这里看这些代码行:

    if (callback)
        callback(sig || graph);
Run Code Online (Sandbox Code Playgroud)

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

ssu*_*ube 19

这是JS(和大多数其他语言)中的逻辑OR运算符.它在11.11的规范中定义.如规范中所述,将首先评估任一侧的表达式,逻辑OR是从左到右的关联.请注意,操作数的评估遵循9.2节中的标准ToBoolean语义,因此[null, undefined, 0, '']所有计数都为falsy.

与大多数语言不同,如果左操作数是真值,则JS返回左操作数,否则返回右操作数.以前在许多SO问题中已经涵盖了这种行为,但值得注意的是,大多数语言只是返回true或false.此行为通常用于为其他未定义的变量提供默认值.

  • 如果两者都是假的,它不会返回"假".它返回右侧的值,无论它是什么(所以,`0`可能,或``"`). (2认同)

0x4*_*2D2 6

逻辑OR运算符(||)是根据是否所述第一是truthy返回其第一或第二操作数的运算符.A "truthy"值意味着比其他任何东西0,undefined,null,"",或false.

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