背景

迭代器

徐徐
前端
发表于 2024-04-15 16:00:00
🌺 摘要
js迭代器

迭代器

1.默认实现迭代器的有

  1. Map,Set,Array,定型数组,arguments,NodeList,字符串
const a = "abcd";
console.log(a[Symbol.iterator]);
console.log(a[Symbol.iterator]());

Iterable:迭代器协议

Iterator:迭代器接口

迭代器会阻止垃圾回收机制,因为迭代器维护着一个指向可迭代对象的引用

2.实现了迭代器的类型:

  • 内部会有一个Symbol.iterator的工厂函数
  • 调用这个工厂函数会生成一个新的迭代器

3.可以隐式的调用这个迭代器的结构有:

  1. for…of…
  2. 数组结构
  3. 扩展运算符
  4. Array.from
  5. 创建集合
  6. 创建映射
  7. Promise.all
  8. Promise.race
  9. yield*操作符

4.实现一个迭代器


[Symbol.iterator](){
return {
 next(){
if(count<limit){
 return {done:false,value:count++}
}else{
return {done:true,value:undefined}
}
 }
}
}

5.提前终止迭代器

for…of…可以通过break,continue,return,throw提前退出

可以通过在迭代器身上增加return方法,返回一个{done:true}来提前终止,但是这种方法的并不是万能的,有的迭代器并不能终止,但是return()方法还是会被调用的

文章发表于 2024-04-15 16:00:00
作者:徐徐
转载请注明出处
上一篇:js/ts 中的void 0表示啥意思
下一篇:vue路由守卫