或許for迴圈我們90%的時間都在這麼用:
for(let i = 0 ; i < 10; i++){
console.log(i)
}
複製程式碼
有沒有仔細考慮過這三個條件能不能又特別的玩法? for(語句1, 語句2, 語句3){}
- 語句1: 在迴圈程式碼塊執行前執行(一定會執行)
- 語句2: 定義程式碼塊執行的條件,也是在迴圈程式碼塊執行前執行;
- 語句3:在迴圈程式碼塊執行完之後才執行;
執行順序: 語句1 -> 語句2 -> 迴圈程式碼塊 -> 語句3
實際上這三個語句都是可以省略的;
省略語句1:
var i=2,len=cars.length;
for (; i<len; i++)
{
document.write(cars[i] + "<br>");
}
複製程式碼
省略語句2: 如果省略了語句2,那麼迴圈條件一直都會是true,這個時候必須在迴圈體中設定break,否則會陷入無限迴圈。
省略語句3:
// 將遞增條件放在迴圈體中
var i=0,len=cars.length;
for (; i<len; )
{
document.write(cars[i] + "<br>");
i++;
}
複製程式碼
// 將迴圈條件放在語句2中
var ary = ['push', 'shift', 'forEach']
for (var i = 0, fn ; fn = ary[i++];) {
console.log(i, fn)
};
複製程式碼