分享更有价值
被信任是一种快乐

JavaScript迭代器知识点有哪些

文章页正文上

本文小编为大家详细介绍“JavaScript迭代器知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript迭代器知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。迭代就是指可以从一个数据集中按照一定的顺序,不断取出数据的过程。那么迭代和遍历有啥子区别呢?迭代强调依次取数据的过程,不保证把所有的数据都取完遍历强调的是要把所有的数据依次全部取出在JavaScript中,迭代器是能调用 next方法实现迭代的一个对象,该方法返回一个具有两个属性的对象。 value:可迭代对象的下一个值 done:表示是否已经取出所有的数据了。 false表示还有数据, true表示后面已经没有数据了。通过可迭代对象中的迭代器工厂函数 Symbol.iterator来生成迭代器。可以发现,迭代器是取完最后一个值之后,即迭代器下一个值 value undefined时,完成。但是,上面的说法并不是很准确,并不是迭代器下一个值 value undefined时,就完成的。还需要判断是不是真的没有值,还是是可迭代对象里就有一个值为 undefined。如果是可迭代对象里有一个值为 undefined的情况,那么此时还是不会变成完成状态。可以多次调用迭代器工厂函数来生成多个迭代器,每个迭代器都表示对可迭代对象的一次性有序遍历。不同迭代器之间互不干扰,只会独立地遍历可迭代对象。如果可迭代对象在迭代期间被修改了,迭代器得到的结果也会是修改后的。当我们迭代到 done: true之后,再调用next是不是会报错,或者不返回任何内容呢?然而,并不是,迭代器会处于一种完成但并不完成的状态, done: true表示已经完成了,但是后续还能一直调用 next,虽然得到的结果一直都会是 { value: undefined, done: true }。这就是为什么说完成但并不完成。从上面的例子中,我们就可以知道是通过通过迭代器工厂函数 Symbol.iterator来生成迭代器,所以我们需要实现一个迭代器迭代器工厂函数,然后迭代器可以调用 next方法,所以还需要实现一个 next方法,至于迭代器工厂函数,实际上直接返回实例 this。计数器例子:乍一看,没啥问题,但是如果我们使用 for-of来遍历就能发现问题。使用 for-of循环也变成一次性的了。这是因为 count是该实例的变量,所以两次迭代都是使用的那一个变量,但是该变量第一次循环完之后,就已经超过限制了,所以再次使用 for-of循环就得不到任何的结果了。可以把 count变量放免费云主机、域名在闭包里,然后通过闭包返回迭代器,这样子每创建一个迭代器都会对应一个新的计数器。测试就和使用 for-of循环一样,迭代器会很聪明地去调用 next方法,当迭代器提前终止时,它也会去调用 return方法。测试如果迭代器没有关闭,就可以继续从上次离开的地方继续迭代。数组地迭代器就是不能关闭的。读到这里,这篇“JavaScript迭代器知识点有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注云技术行业资讯频道。

相关推荐: jquery如何获取父亲节点的第一个子节点

这篇文章主要讲解了“jquery如何获取父亲节点的第一个子节点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何获取父亲节点的第一个子节点”吧! 方法:1、用childr免费云主机、域名en()获取…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

登录

找回密码

注册