Javascript &&运算符与嵌套if语句:什么更快?

arx*_*ica 34 javascript performance conditional-operator

现在,在你们全都跳过我并说"你们过分担心表演"之前,请说明一点,我更多地出于好奇而不是过分夸大的性质.那说......

我很好奇是否使用&&("和")运算符和嵌套if语句之间存在性能差异.此外,是否存在实际的处理差异?即,&& 总是处理两个语句,或者如果第一个语句失败,它会停止@第一个语句吗?这与嵌套的if语句有什么不同?

要明确的例子:

A)&&("和")运算符

if(a == b && c == d) { ...perform some code fashizzle... }
Run Code Online (Sandbox Code Playgroud)

与B)嵌套的if语句

if(a == b) {
    if(c == d) { ...perform some code fashizzle... }
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 30

性能差异可以忽略不计.该&&运营商将不检查的右手表达式时左手表达式的计算结果false.然而,&运营商将检查不管,说不定你的困惑是由这一事实引起的.

在这个特定的例子中,我只选择使用的&&那个,因为它更易读.

  • 注意`&`是/ bitwise /和运算符.将它想象为"&&"的"强制"版本并不完全正确.例如:`1 && 2`是2而'1&2`是0. (19认同)
  • 不知道forced & operator。那很有意思! (2认同)

Ger*_*der 13

如果你担心性能,那么确保a==b更有可能失败c==d.这样,if声明就会提前失败.