1.iterator迭代器必须保证其遍历终止条件可控,否则会形成死循环
demo:

//会用到iterator接口的场合
//1.for...of循环
//2. ...解构表达式
const obj = {
data:['iphone','hw','ganlex'],
};
obj[Symbol.iterator] = function(){
let index = 0;
const self = this;
return {
next(){
return index<self.data.length?{ value:self.data[index],done:false }:{value:undefined,done:true};
}
};
}
for( let v of obj ){
console.log( v );
}

因为在next方法里忘记index++,导致永远无法return "{value:undefined,done:true}",而for...of底层是通过“done:true”来判断遍历结束的,就形成死循环,不断遍历第一个值。

最新文章

  1. awk命令简介
  2. 关于VS2010无法编译问题
  3. Android监听Home键
  4. SSIS包部署
  5. Web模板引擎本质前奏
  6. Oracle高版本导出dmp导入Oracle低版本报错:&quot;不是有效的导出文件、头部验证失败&quot;解决方法
  7. Linq to DataSet 和 DataSet使用方法学习
  8. proguard混淆jar文件
  9. Java对象与类中的一个小练习
  10. springmvc02
  11. HTML5——localStorage
  12. bxslider使用教程
  13. 多线程中join()的用法
  14. jquery的过滤学习
  15. Codeforces Round #404 (Div. 2)
  16. 基于Verilog的带FIFO写入缓冲的串口发送接口封装
  17. vue 中安装使用sass 报错遇到的问题整理
  18. HDU 2112 HDU Today 最短路
  19. Python入门之logging日志模块以及多进程日志
  20. 1001 A+B

热门文章

  1. [ZJOI 2013] K大数查询
  2. SecureCRT远程连接虚拟机CentOS的三种方式
  3. C++之STL迭代器
  4. Azure Key Vault (1) 入门
  5. Nwjs简单配置
  6. OpenService 打开一个已经存在的服务
  7. mongodb &quot;$&quot;的作用
  8. Fitnesse中TemplateLibrary的使用方法
  9. Spring Boot 学习系列(11)—tomcat参数配置建
  10. vue中excel导入导出组件