15.迭代器的介绍
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
/**
* 迭代器是一种接口,为各个不同的数据结构提供统一的访问机制.
* 任何数据结构只要部署了inerator接口,就可以完成遍历操作
* ES6创造了一种新的遍历命令for...of循环,iterator接口主要供for...of消费
* 原生具备inerator接口的数据(可用for...of遍历)
* Array
* Arguments
* Set
* Map
* String
* TypeArray
* NodeList
*
* 工作原理:
* 1.创建一个指针对象,指向当前数组结构的起始位置
* 2.第一次调用对象的next()方法,指针自动指向数组结构的第一个成员
* 3.接下来不断调用next方法,指针一直往后移动,直到指向最后一个成员
* 4.每调用next()方法返回一个包含value和done属性的对象
*/
// for...of遍历数组
let arr = [1, 2, 3, 4, 5, 6, 7];
// for (const item of arr) {
// console.log(item);
// }
let iterator = arr[Symbol.iterator]();
console.log(iterator);
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
</script>
</body>
</html>