for循環中++i和i++的區別


語法

for (語句1; 語句2; 語句3) { 被執行的代碼塊 } 

語句 1 在循環(代碼塊)開始前執行

語句 2 定義運行循環(代碼塊)的條件

語句 3 在循環(代碼塊)已被執行之后執行(這就是循環中的++i和i++結果一樣的原因,但是性能不一樣,稍后解釋)

語句1 (同上面語法中的 語句1)

語句1 是可選的,也就是說不使用語句1 也可以。

var i=2,len=5; for (; i<len; i++){ document.write(cars[i] + "<br>"); } 

也可以在語句1 中初始化任意(或者多個)值:

var arr = [1,2,3] for (var i=0,len=arr.length; i<len; i++){ document.write(cars[i] + "<br>"); } 

語句2 (同上)

通常語句 2 用於評估初始變量的條件。

語句 2 同樣是可選的。

如果語句 2 返回 true,則循環再次開始,如果返回 false,則循環將結束。

如果您省略了語句 2,那么必須在循環內提供 break。否則循環就無法停下來。這樣有可能令瀏覽器崩潰

語句3 (同上)

通常語句 3 會增加初始變量的值。

語句 3 也是可選的。

語句 3 有多種用法。增量可以是負數 (i--),或者更大 (i=i+15)。

語句 3 也可以省略(比如當循環內部有相應的代碼時):

var i=0,len=arr.length; for (; i<len; ){ document.write(cars[i] + "<br>"); i++; } 

++i 和 i++ 的區別

 var i = 10; console.log(i++); //10 ,先引用原值,然后加1 等價於: var i= 10; console.log(i); //先輸出i i++; //然后加1 var i = 10; console.log(++i); //11 , 這次是先加1,然后輸出 

總結下:++在前下自加后運算;++在后先運算后自加

for循環中++i 和 i++ 的區別

根據上面的for循環的語法定義 ++i 和 i++的結果是一樣的,都要等代碼塊執行完畢才能執行語句3,但是性能是不同的。在大量數據的時候++i的性能要比i++的性能好原因:

i++由於是在使用當前值之后再+1,所以需要一個臨時的變量來轉存。

而++i則是在直接+1,省去了對內存的操作的環節,相對而言能夠提高性能


免責聲明!

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



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