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>
posted @ 2022-01-02 16:12  问某完红  阅读(4)  评论(0编辑  收藏  举报