Javascript迭代器
2021-08-11 18
我们都知道可以用 for...of... 来循环可迭代对象,例如循环
Array
Arguments
Map
Set
String
TypedArray
NodeList
迭代器的工作原理
- 创建一个指针,指向当前数据结构的起始位置
- 第一次调用对象next方法,指针自动指向数据结构的第一个成员
- 接下来不断调用next,指针一直往后移动,直到指向最后一个成员
- 每调用一次next方法返回一个包含value和done属性的对象
为什么Object不可以被迭代
let arr = [1, 2, 3]
let obj = {
a: 1,
b: 2,
c: 3
}
for(let val of arr) {
console.log(val)
}
for(let val of obj) {
console.log(val)
}
打印输出即会报:obj is not iterable(obj不是一个可迭代对象、obj不可被迭代)