在javascript中| |的含义是什么?

在javascript中| |的含义是什么?,javascript,Javascript,我正在查看以下代码行: 我从未在javascript方法调用中看到垂直的“或”条。它们是什么意思?它们是否传递“真”参数(即sig或图形)?它们是否传递定义的参数?我以前从未见过这种语法。这是JS(和大多数其他语言)中的逻辑OR运算符。它是。如规范中所述,将首先计算任意一侧的表达式,然后计算逻辑OR。请注意,操作数的求值遵循标准,因此[null,undefined,0',][所有操作数都计算为falsy 与大多数语言不同,JS返回左操作数(如果是truthy),否则返回右操作数。这种行为在许多S

我正在查看以下代码行:


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

这是JS(和大多数其他语言)中的逻辑OR运算符。它是。如规范中所述,将首先计算任意一侧的表达式,然后计算逻辑OR。请注意,操作数的求值遵循标准,因此
[null,undefined,0',][
所有操作数都计算为falsy


与大多数语言不同,JS返回左操作数(如果是truthy),否则返回右操作数。这种行为在许多SO问题中都存在,但值得注意的是,大多数语言只返回true或false。此行为通常用于表示其他未定义的变量。

它通过计算结果为真的变量,或者如果两者都为真,则通过
sig

它表示“或”(或)因此如果(sig或图形)

小心您可以使用此选项“短路”代码。 例如:

If (foo || foo2)

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

操作符| |的意思是或

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

是一个运算符,它根据第一个操作数是否为真返回其第一个或第二个操作数。“truthy”值表示除
0
未定义
null
false
以外的任何值

此运算符使用短路,这意味着如果第一个表达式为truthy,则不计算第二个表达式,并立即返回第一个操作数。这类似于,其作用相反:如果第一个操作数为假,则返回它,否则返回第二个表达式。

双管道(| |)在JS中表示或。简单地说,这个或那个是
真的
。它要求任何一个边为true才能得到
true
结果

例如:

var x=8

变量y='c'

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


双管的左侧返回
True
,右侧返回
False
。因此,结果是
True

如果两者都为false,则不会返回
false
;它返回右边的值,不管它是什么(因此,
0
可能,或者
)。@Pointy我的错误,修复了。“与大多数语言不同,JS返回左操作数,如果它是真的,否则返回右操作数。”有点宽泛。这种方法在具有“真实性”概念的脚本语言中相当常见,例如Python和Perl。即使Ruby也有这种行为,尽管它没有那么有用(因为Ruby中几乎所有的东西都是真实的,所以测试必须将左侧强制为布尔值,这意味着这只适用于从
false
nil
默认为另一个值,而不是从任意的“假”对象,如0值、空序列等。)。这不是JavaScript的工作方式,尽管对其他一些语言(如Java)也是如此。我错了。如果参数不是布尔值,回调函数将接受第一个not null(或未定义)参数。请有人解释我的答案有什么问题,以便我改进它?逻辑运算符并不总是返回布尔值。
If (foo || foo2)