为什么条件使用&&是两倍快

时间:2013-07-04 21:52:19

标签: javascript performance

我今天正在寻找很多东西,但是在我发现了一些我不知道的东西之后......所以我决定看看哪个是最快的,这就是我所拥有的......

&&if and condition?a:b;

快两倍

http://jsperf.com/speed-test-for-conditions

令人惊讶的权利。或者只是我的浏览器。

您如何看待这一点,您认为表现是否值得。我的意思是,如果您的应用程序开始工是否值得将编码风格改为奇怪的&& amp;秒。

1 个答案:

答案 0 :(得分:3)

您的代码段不会做同样的事情。 JavaScript的逻辑AND短路,因此(x = 'default')部分从未实际执行过。您的代码解释如下:

(x == undefined) || (null && (x = 'default'))

由于x == undefinedtrue,OR的第二部分永远不会执行,因为无论第二部分的布尔值如何,整个表达式都将为真。

如果你添加括号,第一个和第三个片段end up being the same speed(至少对我来说):

(x == undefined || null) && (x = 'default')