此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。

View in English Always switch to English

for...of

Baseline
Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

for...of 語法執行一個迴圈,該迴圈操作來自可迭代物件的值序列。可迭代物件包括內置物件實例,例如 ArrayStringTypedArrayMapSetNodeList(以及其他 DOM 集合),還包括 arguments 物件、由生成器函數生成的生成器,以及用戶定義的可迭代物件。

嘗試一下

const array1 = ["a", "b", "c"];

for (const element of array1) {
  console.log(element);
}

// 預期輸出:"a"
// 預期輸出:"b"
// 預期輸出:"c"

語法

js
for (variable of iterable)
  statement
variable

在每次迭代中從序列得到一個值,可以是用 constletvar 宣告的變數,也可以是賦值目標(例如先前宣告的變數、物件屬性或解構模式)。使用 var 宣告的變數不是迴圈的局部變數,即它們與 for...of 迴圈位於同一作用域中。

iterable

可迭代物件,迴圈操作的值序列的來源。

statement

每次迭代後執行的語句,可以參考 variable。可以使用區塊語句來執行多個語句。

說明

for...of 迴圈依序逐個操作來自可迭代物件的值。迴圈對值的每次操作稱為一次迭代,而迴圈本身則稱為迭代可迭代物件,每次迭代執行可能參考當前序列值的語句。

for...of 迴圈在可迭代物件上進行迭代時,它首先調用可迭代物件的