[英]What is the meaning of || in javascript?
我正在从这里查看这些代码行:
if (callback)
callback(sig || graph);
我从未在 javascript 方法调用中看到垂直的“或”条。 他们的意思是什么? 他们是否传递了“true”参数(即 sig 或 graph)? 他们传递定义的参数吗? 我以前从未见过这种语法。
这是 JS(和大多数其他语言)中的逻辑 OR 运算符。 它在 11.11 的规范中定义。 如规范中所述,将首先评估任一侧的表达式,并且逻辑 OR 是从左到右关联的。 请注意,操作数的计算遵循第 9.2 节中的标准ToBoolean 语义,因此[null, undefined, 0, '']
都算作假。
与大多数语言不同,JS 返回左操作数,如果它为真,则返回右操作数否则。 这种行为之前已经在许多 SO 问题中讨论过,但值得注意的是,大多数语言只是简单地返回 true 或 false。 此行为通常用于为其他未定义的变量提供默认值。
逻辑 OR 运算符 ( ||
)是一个运算符,它根据第一个操作数是否为真返回其第一个或第二个操作数。 “真实”值意味着除0
、 undefined
、 null
、 ""
或false
之外的任何值。
此运算符使用短路,这意味着如果第一个表达式为真,则不计算第二个表达式并立即返回第一个操作数。 这类似于逻辑与运算符 ( &&
) ,其作用相反:如果第一个操作数为假,则返回它,否则返回第二个表达式。
它通过评估为真的任何一个,或者如果两者都为真则通过sig
。
它的意思是“或”( http://www.w3schools.com/js/js_comparisons.asp )所以如果(sig OR图)
小心你可以使用它“短路”你的代码。 例子 :
If (foo || foo2)
如果 foo 为真,那么 JavaScript 甚至根本不会测试 foo2,它只是跳过它。
双管(||)在JS中代表OR。 简单来说,要么 this 要么 that 是True
。 它需要任何一方为真才能获得True
结果。
例如:
无功x = 8;
var y = 'c';
x >= 8 || y === 'a'
双管的左侧返回True
,右侧是False
。 因此,结果为True
。
运算符 || 是指或。
如果 sig 或 graph 为真或非空变量,回调函数将收到一个真参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.