在基本的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);
}
(区别在于++i
和i++
)
我看到两处都在使用。在我看来,他们都产生完全相同的结果。如果是这种情况,是否有偏好?
答案 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)。 (未使用此值。)
评估变更部分中的表达式,但忽略它们的值。因此,++i
和i++
在这里不会有任何区别。