11

我读过C 中 i++ 和 ++i 之间是否存在性能差异?

如果不使用结果值,i++ 和 ++i 之间是否存在性能差异?

JavaScript 的答案是什么?

例如,以下哪个更好?

1)

for(var i=0;i<max;i++){
    //code
}

2)

for(var i=0;i<max;++i){
    //code
}
4

2 回答 2

14

这是一篇关于这个主题的文章:http: //jsperf.com/i-vs-i/2

++i似乎稍微快一些(我在 Firefox 上测试过),根据这篇文章,一个原因是:

使用 i++,在您可以在后台增加 i 之前,必须创建 i 的新副本。使用 ++i 你不需要那个额外的副本。i++ 将在增加 i 之前返回当前值。++i 返回递增的版本 i。

于 2012-09-20T00:51:05.437 回答
-5

不,执行时间没有区别。两个代码片段的不同之处在于当 i 递增时。

for(i = 0; i < max; i++)
{
    console.log(i);
}

第一个示例将产生结果:0,1,2,3,...,max-1

for(i = 0; i < max; ++i)
{
    console.log(i);
}

第二个示例将产生结果:1,2,3,...,max

i++ 在操作后增加值。++i 在操作之前增加值。

除了在 ++i 上进行的迭代次数减少之外,没有任何性能差异,因为增量是在第一次操作之前完成的

于 2012-09-20T00:53:02.750 回答