我从这里看这些代码行:
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.此行为通常用于为其他未定义的变量提供默认值.
的逻辑OR运算符(||)是根据是否所述第一是truthy返回其第一或第二操作数的运算符.A "truthy"值意味着比其他任何东西0,undefined,null,"",或false.
此运算符使用短路,这意味着如果第一个表达式是真实的,则不计算第二个表达式,并立即返回第一个操作数.这类似于Logical AND运算符(&&),它执行相反的操作:如果第一个操作数为false,则返回它,否则返回第二个表达式.