和&&和||操作员工作

时间:2015-01-19 09:39:03

标签: javascript lazy-evaluation

我知道何时应该使用&&||运算符来加入条件,但我想知道它们是如何工作的。例如,让我们来看看这个案例:

2&&3&&5 //returns 5
2||3||5 //returns 2

似乎&&运算符计算每个操作数以确定它是假的还是真的。如果它评估为真实,则它向右移动并再次评估表达式。以这种方式,它返回第一个被评估为falsy的表达式,或者返回被评估为truthy的最后一个表达式。 ||运算符存在一些相同的逻辑,但只是以相反的顺序存在。它返回第一个被评估为truthy的表达式,或者返回被评估为falsy的最后一个表达式。我的逻辑是否正确?

1 个答案:

答案 0 :(得分:1)

根据此Wikipedia article,Javascript对&&||运算符使用短路评估,这意味着首先评估左操作数;只有在相应操作的结果需要其值时,才会评估右操作数。