2

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

&&比快两倍if and condition?a:b;

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

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

你怎么看这个,你觉得性能值得吗。我的意思是,如果您的应用程序开始运行速度提高 2 倍。是否值得将编码风格更改为奇怪的 && s..

4

1 回答 1

3

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

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

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

如果添加括号,则第一个和第三个片段最终的速度相同(至少对我而言):

(x == undefined || null) && (x = 'default')
于 2013-07-04T21:58:31.727 回答