JavaScript For 迴圈
迴圈可以多次執行一段程式碼。
JavaScript 迴圈
如果您想一遍又一遍地執行相同的程式碼,每次使用不同的值,迴圈就非常方便。
當處理陣列時,這通常是這種情況
不必編寫
text += cars[0] + "<br>";
text += cars[1] + "<br>";
text += cars[2] + "<br>";
text += cars[3] + "<br>";
text += cars[4] + "<br>";
text += cars[5] + "<br>";
您可以這樣寫
for (let i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
自己動手試一試 »
不同型別的迴圈
JavaScript 支援不同型別的迴圈
for
- 迴圈程式碼塊多次for/in
- 迴圈遍歷物件的屬性for/of
- 迴圈遍歷可迭代物件的值while
- 當特定條件為真時迴圈程式碼塊do/while
- 當特定條件為真時也迴圈程式碼塊
For 迴圈
for
語句建立了一個帶有 3 個可選表示式的迴圈
for (expression 1; expression 2; expression 3) {
// 要執行的程式碼塊
}
Expression 1 在程式碼塊執行前(執行一次)執行。
Expression 2 定義了執行程式碼塊的條件。
Expression 3 在程式碼塊執行後(每次)執行。
從上面的例子中,您可以讀出
Expression 1 在迴圈開始前設定一個變數(let i = 0)。
Expression 2 定義了迴圈執行的條件(i 必須小於 5)。
Expression 3 每次迴圈程式碼塊執行後都會增加一個值(i++)。
Expression 1
通常,您會在 Expression 1 中初始化迴圈中使用的變數(let i = 0)。
這並不總是成立的。JavaScript 不在乎。Expression 1 是可選的。
您可以在 Expression 1 中初始化多個值(用逗號分隔)
示例
for (let i = 0, len = cars.length, text = ""; i < len; i++) {
text += cars[i] + "<br>";
}
自己動手試一試 »
您也可以省略 Expression 1(例如,當您的值在迴圈開始前設定好時)
示例
let i = 2;
let len = cars.length;
let text = "";
for (; i < len; i++) {
text += cars[i] + "<br>";
}
自己動手試一試 »
Expression 2
通常,Expression 2 用於評估初始變數的條件。
這並不總是成立的。JavaScript 不在乎。Expression 2 也是可選的。
如果 Expression 2 返回 true,迴圈將重新開始。如果它返回 false,迴圈將結束。
如果您省略 Expression 2,則必須在迴圈內部提供一個 break。否則迴圈將永遠不會結束。這會使您的瀏覽器崩潰。請參閱本教程的後續章節,瞭解 break 的內容。
Expression 3
通常,Expression 3 會遞增初始變數的值。
這並不總是成立的。JavaScript 不在乎。Expression 3 是可選的。
Expression 3 可以做任何事情,例如負增量(i--)、正增量(i = i + 15)或任何其他操作。
Expression 3 也可以被省略(例如,當您在迴圈內部遞增值時)
示例
let i = 0;
let len = cars.length;
let text = "";
for (; i < len; ) {
text += cars[i] + "<br>";
i++;
}
自己動手試一試 »
迴圈作用域
在迴圈中使用 var
使用 let
在迴圈中
在第一個例子中,使用 var
,在迴圈中宣告的變數會重新宣告迴圈外的變數。
在第二個例子中,使用 let
,在迴圈中宣告的變數不會重新宣告迴圈外的變數。
當 let
用於在迴圈中宣告 i 變數時,i 變數僅在迴圈內可見。
For/Of 和 For/In 迴圈
for/in
迴圈和 for/of
迴圈將在下一章中解釋。
While 迴圈
while
迴圈和 do/while
迴圈將在接下來的章節中解釋。