1. Iterator作用:
(1) 为各种数据,提供一个统一的,简便的访问接口。
(2) 使数据结构的成员能够按某种次序排列。
(3) ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费。
2. Iterator 的遍历过程是这样的。
(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。
(2)第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。
(3)第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。
(4)不断调用指针对象的next方法,直到它指向数据结构的结束位置。
每次返回的对象中包含value和done两个属性。 value是当前成员的值,done是个boolean值,表示遍历是否结束。
3. 原生具备 Iterator 接口的数据结构如下。
Array
Map
Set
String
TypedArray
函数的 arguments 对象
4. 遍历器对象除了具有next方法,还可以具有return方法和throw方法。如果你自己写遍历器对象生成函数,那么next方法是必须部署的,return方法和throw方法是否部署是可选的。
5. for...in 循环可以遍历数组的键名 其中键是以字符串作为键名。 适用于遍历对象。
6. for...of 提供了遍历所有数据结构的统一操作接口。
for (var n of shuzi) {
if (n > 1000)
break;
console.log(n);
}