小编典典

带有多个条件的javascript if语句会测试所有条件吗?

javascript

在javascript中,当使用带有多个条件的if语句进行测试时,javascript是否会全部测试它们,或者如果已经为false,则在测试所有条件之前会保全吗?

例如:

 a = 1
 b = 2
 c = 1

 if (a==1 && b==1 && c==1)

javascript将测试所有这三个条件,还是在看到b不等于1并因此为false之后,将退出该语句?

我从性能的角度出发。例如,如果我正在测试3个复杂的jQuery选择器,那么我不希望jQuery遍历DOM
3次(如果通过第一个可以看出,它将返回FALSE)。(在这种情况下,嵌套3个if语句会更有意义)。

附录:出于好奇,这的恰当用语是什么?我注意到许多人使用“短路”一词。另外,某些语言会这样做吗,而其他语言不会吗?


阅读 551

收藏
2020-05-01

共1个答案

小编典典

&&运营商“短路” -也就是说,如果左边的条件是假的,它不打扰评估是正确的。

同样,||如果左侧条件为真,则操作员会短路。

编辑:不过,在进行基准测试并确定这是一个问题之前,您不必担心性能。过早的微观优化是可维护性的祸根。

2020-05-01