首先我們應該都知道++i與i++的區別是: ++i 是先執行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再執行 i=i+1;
然后我們也知道for循環的執行順序如下:
for(A;B;C)
{
D;
}
進入循環執行A;//只是進入的時候執行.
執行B;//條件為真才執行D,不然就跳出for了.
執行D;
執行C;
再回到第2步開始執行
那么我們接着看下面實例:
1.for (var i=0; i<10; i++):
for(var i = 0; i<10; i++) {
console.log(i);
}
相當於:
for(var i=0; i<10;)
{
console.log(i);
i++;
}
2.for (var i=0; i<10; ++i):
for(var i = 0; i<10; ++i) {
console.log(i);
}
相當於:
for(var i=0; i<10;)
{
console.log(i);
++i;
}
在上述的循環體中,i++ 和 ++i 的作用是一樣的。
打印出來的信息都是:
0
1
2
3
4
5
6
7
8
9
打印信息也證明了 i++ 和 ++i 的作用是一樣的。
效率問題
++i相當於下列代碼
i += 1;
return i;
i++相當於下列代碼
j = i;
i += 1;
return j;
寫for循環的時候都是寫 ++i 而不是 i++。這樣效率高。當然如果編譯器會將這些差別都優化掉,那么效率就都差不多了。
參考:
https://blog.csdn.net/zgrkaka/article/details/78971977
https://blog.csdn.net/github_37847975/article/details/77369851