js里面for循環的++i與i++


首先我們應該都知道++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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM