使用 for...of 语句可以遍历实现了可迭代协议(iterator protocol)的对象,如数组、字符串、map 和 set。只需在循环关键字后指定一个变量来接收每次迭代的值即可,该语法会自动调用对象的 [symbol.iterator] 方法获取迭代器并逐个取值。

哪些内置对象支持 for of 遍历
JavaScript 中常见的可迭代对象包括 Array、String、TypedArray、Map、Set 以及 DOM 集合类(如 NodeList)。这些类型内部都定义了 [Symbol.iterator] 方法,因此可以直接被 for...of 识别。普通 Object 对象默认不可迭代,若强行使用会抛出 TypeError。

const arr = [10, 20, 30]; const str = "AB"; const map = new Map([["a", 1]]); for (let val of arr) console.log(val); // 10, 20, 30 for (let char of str) console.log(char); // A, B for (let entry of map) console.log(entry); // ["a", 1]
如何自定义类使其支持 for of
要让自定义类支持 for...of,必须在原型上实现 [Symbol.iterator] 方法。该方法需返回一个具有 next() 方法的迭代器对象,next() 返回包含 value 和 done 属性的对象。当 done 为 true 时遍历结束。

for...of
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











