如果不使用结果值,i++ 和 ++i 之间是否存在性能差异?
JavaScript 的答案是什么?
例如,以下哪个更好?
1)
for(var i=0;i<max;i++){
//code
}
2)
for(var i=0;i<max;++i){
//code
}
如果不使用结果值,i++ 和 ++i 之间是否存在性能差异?
JavaScript 的答案是什么?
例如,以下哪个更好?
1)
for(var i=0;i<max;i++){
//code
}
2)
for(var i=0;i<max;++i){
//code
}
这是一篇关于这个主题的文章:http: //jsperf.com/i-vs-i/2
++i
似乎稍微快一些(我在 Firefox 上测试过),根据这篇文章,一个原因是:
使用 i++,在您可以在后台增加 i 之前,必须创建 i 的新副本。使用 ++i 你不需要那个额外的副本。i++ 将在增加 i 之前返回当前值。++i 返回递增的版本 i。
不,执行时间没有区别。两个代码片段的不同之处在于当 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 上进行的迭代次数减少之外,没有任何性能差异,因为增量是在第一次操作之前完成的