js裡面for迴圈的 i與i

2022-04-18 23:26:54 字數 813 閱讀 7260

首先我們應該都知道++i與i++的區別是: ++i 是先執行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再執行 i=i+1;

然後我們也知道for迴圈的執行順序如下:

for(a;b;c)

進入迴圈執行a;//只是進入的時候執行.

執行b;//條件為真才執行d,不然就跳出for了.

執行d;

執行c;

再回到第2步開始執行

那麼我們接著看下面例項:

1.for (var i=0; i<10; i++):

for(var i = 0; i<10; i++)

相當於:

for(var i=0; i<10;)

2.for (var i=0; i<10; ++i):

for(var i = 0; i<10; ++i)

相當於:

for(var i=0; i<10;)

在上述的迴圈體中,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++。這樣效率高。當然如果編譯器會將這些差別都優化掉,那麼效率就都差不多了。

參考:

i 迴圈與i 迴圈

在網上看到一篇文章,裡面說i 和i 的效率有區別,這個區別我早就知道,其實就是乙個標誌暫存器的重用問題,雖然早就知道還是想寫出來來展示一下計算的魅力,這兩個例子是 int loop dec int n int i 0 int v 0 for i n i 0 i v i return v int lo...

for迴圈中的i 與 i

今天遇到乙個for迴圈 for i 1 i 1 i 其中使用的是 i,我以為 i會先於判斷執行,就上網找了找i 與 i的區別。答案很少,有乙個說的是效率後者高一些。然後我又寫了乙個測試的 var j 0 for i 1 i 1 i,j console.log console.log i,j 發現 是...

for迴圈中 i和i 的區別

語法 for 語句1 語句2 語句3 語句 1 在迴圈 塊 開始前執行 語句 2 定義執行迴圈 塊 的條件 語句 3 在迴圈 塊 已被執行之後執行 這就是迴圈中的 i和i 結果一樣的原因,但是效能不一樣,稍後解釋 語句1 同上面語法中的 語句1 語句1 是可選的,也就是說不使用語句1 也可以。var...