js 循环中循环变量i=0,步伐不为1的时候,i加不上去,一直是0!!

function* sumq(){
var sum=0;
for(var i=0;i<10;i+2){//此处i不会加上去
yield sum+=i;
}
return sum;
}

var s=sumq();
for (var i = 0; i <= 5; i++) {
console.log(s.next());
}

for(var i=0;i<10;i+2){//会编译失败!不能+2;i自身不会增加2的
yield sum+=i;
}
可以修改为for(var i=0;i<10;i++){
yield sum+=i+2;//每次+2;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-14
改成for(var i=0;i<10;i=i+2)追问

说说理由

追答

i+2只是个计算表达式,并没有赋值给i,计算完后并没有改变i的值,所以不会加上去
i=i+2才会将计算后的值赋值给i

本回答被提问者采纳