在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)