概念

迭代器是不同数据结构的访问机制接口。只要部署了迭代器接口,任何数据结构都可以被遍历。

作用

迭代器有三个功能:

为各种数据结构提供一个统一的,简便的访问接口使得数据结构的成员能够按照某种次序排列ES6创造了一种遍历命令,for...of循环

有一个next方法,每次调用next方法都会返回数据结构的当前成员信息,其中value属性是当前成员的值,done属性是一个布尔值,表示变量是否结束。

默认Iterator接口

迭代器接口的目的是为所有数据结构提供统一的访问机制,也就是说...循环。当一个...循环用于遍历数据结构,循环会自动找到迭代器接口。

只要使用迭代器接口部署,数据结构就被称为“可遍历的”。

ES6规定默认迭代器接口部署在数据结构的Symbol.iterator属性中,或者只要数据结构具有Symbol.iterator属性,它就被认为是“可遍历的”。通过调用Symbol.iterator方法,可以得到当前数据结构的默认遍历生成器函数。

原生具备Iterator接口的数据结构

数组、映射、集合、字符串、类型行、函数的参数对象、节点列表对象

yield*yield*后面跟的是一个可遍历的结构,它会调用该结构的遍历器接口。

其他场合由于数组的遍历会调用遍历器接口,所以任何接受数组作为参数的场合其实都调用了遍历器的接口例如:for ... of、Array.from、Map、Set、WeakMap、WeakSet、Promise.all、Promise.race字符串的Iterator接口

字符串是带有本机迭代器接口的类似数组的对象。

Iterator接口与Generator函数

符号迭代器方法最简单的实现是生成器函数。

遍历对象的return、throw

除了下一个方法之外,遍历对象还有一个返回方法和一个抛出方法。

return:

返回方法的使用场合是退出...如果一个对象在遍历后需要清理或释放资源,可以部署返回方法。

注意:返回方法必须返回一个对象,该对象由生成器规范决定。

throw:

Throw方法主要与Generator函数结合使用,但该方法不适用于一般测力计对象。

1.《iterator Iterator的概念》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《iterator Iterator的概念》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1748971.html