白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

JavaScript-面试-迭代器与生成器

2026年10月16日·Admin·2 次浏览

面试题:迭代器协议?for...of 与 for...in?Generator 用途?

可迭代协议(Iterable)

对象需有 Symbol.iterator 方法,返回迭代器对象。

迭代器协议(Iterator)

对象有 next(),返回 { value, done }。

内置可迭代:Array、String、Map、Set、arguments、NodeList(现代环境)等。

for...of vs for...in

for…of for…in
遍历 值(迭代器) 可枚举属性键(含原型链上可枚举)
数组 元素值 字符串索引,顺序不保证像「数组顺序」直觉

数组遍历元素优先 for...of 或传统 for。

Generator function*

  • yield 暂停执行,next() 恢复,适合惰性序列、异步流程编排(配合手动 next 或与 async 对比)。
  • 返回对象同时实现 Iterable 与 Iterator。

© 2025 My Blog. Built with Nuxt.js v4