我正在查看
here的这些代码行:
if (callback) callback(sig || graph);
我从未在javascript方法调用中看到垂直“或”栏.他们的意思是什么?他们是否通过了“真实”参数(即sig或图表)?他们是否通过了定义的参数?我之前从未见过这种语法.
解决方法
这是JS(和大多数其他语言)中的逻辑OR运算符.它是
defined in the spec at 11.11.如规范中所述,任何一方的表达式将首先被计算,逻辑OR是
left-to-right associative.注意,操作数的评估遵循标准
ToBoolean semantics from section 9.2,因此[null,undefined,”]都算作falsy .
与大多数语言不同,如果左操作数是真值,则JS返回左操作数,否则返回右操作数.这个行为has been covered before在一些SO问题中,但值得注意的是,因为大多数语言只返回true或false.此行为通常用于provide default values否则未定义的变量.