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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章