Javascript(笔记36) - ES6特性 - 迭代器
迭代器
迭代器(iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作。
在JS里,iterator 接口就是对象里的一个属性,这个属性的名字就叫: Symbol.iterator ;
ES6 创造了一种新的遍历命令 for ... of 循环,iterator 接口主要供 for ... of 消费;
原生具备 intertor 接口的数据(可用于 for ... of 遍历)
Array, Arguments, Set, Map, String, TypeArray, Nodelist
实例:
const xiyou = ['唐僧','孙悟空','猪八戒','沙和尚'];
for(let v of xiyou){
console.log(v); // 唐僧 孙悟空 猪八戒 沙和尚
}
for ... of 和 for ... in 的区别: 前者输出键值,后者输出键名;
const xiyou = ['唐僧','孙悟空','猪八戒','沙和尚'];
for(let k in xiyou){
console.log(k); // 0 1 2 3
}
这样说还不是特别准确:具体区别,还请看官方
工作原理: