括号重要吗?

do the parantheses matter?

本文关键字:      更新时间:2023-09-26

给出这个JSPerf测试

为什么这样更快

var x;var i = 1E4;var j = 1E4;
for (; i-- > -1;) {
  x = -~x;
}
for (; j-- > -1;) {
  x = ~ - x;
}

var x;var i = 1E4;var j = 1E4;
for (; j-- > -1;) {
  x = -1 * ~x;
}
for (; j-- > -1;) {
  x = ~ (-1 * x);
}

第二个版本是否可以更好地优化,或者原因是什么?

在第二个代码示例中,您使用j作为两个循环中的迭代器。

我相信在第二个测试中,您要么忘记将j重置为1E4,要么您打算在其中一个循环中使用i。请看下面的测试:

http://jsperf.com/bit-increment/2

我添加了一个片段,在第一个循环中使用i,在第二个循环中使用j,它的执行速度与第一个测试一样快。

相关文章:
  • 没有找到相关文章