Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 偏执狂有关系吗?_Javascript_Performance_Increment_Decrement - Fatal编程技术网

Javascript 偏执狂有关系吗?

Javascript 偏执狂有关系吗?,javascript,performance,increment,decrement,Javascript,Performance,Increment,Decrement,考虑到这个测试 为什么这样更快 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); } 第二个版本是否可

考虑到这个测试

为什么这样更快

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
重置为
1E4
,或者您打算在其中一个循环中使用
I
。请参阅此测试:


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

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

您是否在第二个示例中的某个地方重置了
j
?谢谢!)该死,我怎么会错过这个:皮会接受他的答案,因为这是他的第一个答案,而且只会晚一点