在一个基本的javascript for循环中,++ i和i ++之间有什么区别,我应该使用哪个

时间:2014-04-02 17:37:16

标签: javascript arrays loops for-loop

在基本的for循环中,

之间有什么区别
var arr = [0,1,2,3,4];
for(var i = 0, len = arr.length; i < len; ++i) {
   console.log(i);
}

var arr = [0,1,2,3,4];
for(var i = 0, len = arr.length; i < len; i++) {
   console.log(i);
}

(区别在于++ii++

我看到两处都在使用。在我看来,他们都产生完全相同的结果。如果是这种情况,是否有偏好?

3 个答案:

答案 0 :(得分:3)

没有区别。预增量和后增量之间的唯一区别是,如果您将结果分配给某些东西; pre-increment指定新值,post-increment指定旧值。

答案 1 :(得分:1)

预增量(++ i)将i加1,然后返回i;相比之下,i ++返回i然后添加一个,理论上导致在应用增量操作之前创建一个存储i值的临时变量。

将i ++改为++ i进行优化。

答案 2 :(得分:0)

根据ECMA Script 5.1 Standard Specification for for loop

  

F。如果存在第二个表达式,那么。

     

我。让 incExprRef 成为评估第二个表达式的结果。

     

II。调用GetValue(incExprRef)。 (未使用此值。

评估变更部分中的表达式,但忽略它们的值。因此,++ii++在这里不会有任何区别。

此外,++ii++的评估几乎相同。所以,我几乎认为在性能方面也没有任何差异。