for (var i=0;i<5;++i){
alert(i);
}
for (var i=0;i<5;i++){
alert(i);
}
这两个结构返回相同的结果:0,1,2,3,4。为什么?它们之间有什么区别?我在for循环中使用的增量是否重要?
答案 0 :(得分:2)
如果你把++放在变量前面,你在返回它之前递增它(在那个语句中),如果你把它放在后面你返回值,然后再增加它。由于您对语句中的值不做任何操作,因此声明后的结果是相同的。
考虑一下:
var i = 0;
var a = ++i; // a is 1
var b = i++; // b is also 1, i is now 2.
答案 1 :(得分:1)
前者是预增量,后者是后增量。
差异不是你的例子,因为你没有把结果分配给任何东西,但是在将结果分配给另一个变量时显示自己很多。
var i = 0;
alert(i); // alerts "0"
var j = i++;
alert(j); // alerts "0" but i = 1
var k = ++i;
alert(k); // alerts "2" and i = 2
答案 2 :(得分:0)
对于一个你看不出任何差异的循环,但是++ i递增然后返回值,而i ++返回一个值,然后递增。如果你有像
这样的代码var a = myarray[++i]
和
var a = mayarray[i++];
他们将返回不同的值
答案 3 :(得分:0)
这两个代码块应该具有相同的输出。 i ++和++ i之间的差异是变量i递增的顺序,只有在同时使用i的值时才重要。
例如,++ i和i ++有效地做同样的事情,除非你像这样使用它:
y = i++;
或
y = ++i;
在第一个例子中,i在y被设置为其值之后递增(因此,如果i = 0,y = 0,则i = 1)。在第二个例子中,i在y被设置为其值之前递增(所以如果i = 0,则i = 1,y = 1)。
因为你没有在for语句中以类似的方式使用i ++,所以它没有任何有效的区别。
答案 4 :(得分:0)
i++
或++i
作为不同的语句执行。因此,将i++
或++i
置于for循环中并没有任何区别。