1、常用寫法:
for(var i=0;i<arr.length;i++){ console.log(i); console.log(arr[i]); }
每次都需要讀取一次arr.length,進行判斷
2、
for(var i=0,len=arr.length;i<len;i++){ console.log(i); console.log(arr[i]); }
變數定義完整,不用再從陣列取回長度,直接讓電腦判斷i與length
3、
for(var i=0,val;val=arr[i++];){ console.log(i); console.log(val); }
判斷與賦值放在一起,邊循環邊賦值;
再看一個for(var i=10;i--;){console.log(i);}
粗看一開始會以為是錯誤的,因為語句沒有完整,不過迴圈會是10次,為什麼?
因為條件句第二句i<10;回傳的是true;而在js中0,null,undefined,false和空字串都會是false值
所以,在i變成0的時候自動轉換為布林值false,從而進行循環結束終止;
這個理解了那再回頭看上面第三種寫法,
for(var i = 0;i<arr.length;i++){ var val = arr[i]; }
i = 0與var同時放在初始條件,val = arr[i++]判斷,如果arr[i++]>了arr.length,則val就是未定義,判斷為undefined,判斷終止,循環結束;
#故,循環中可以透過簡寫利用0,null,undefined,false和空字串等進行判斷,學會程式設計思考。
以上是for迴圈寫法進階的詳細內容。更多資訊請關注PHP中文網其他相關文章!