ECMAScript 6 (ES6)
JavaScript属于ES的扩展。
第二章·迭代器和for-of循环
1、ES6新增了for-of
循环
for (var value of myArray){
console.log(value);
}
能够正确相应break、return等
支持Map和Set对象的遍历。
**Map对象需要解构,如下例
for(var [key, value] of phoneBookMap){
console.log(key + "'s phone number is: " + value);
}
可以给任意类型的对象添加迭代器方法,就像myObject.toString()
以及 myObject[Symbol.iterator]()
,然后就可以遍历这个对象了。
所有拥有[Symbol.iterator]()
的对象被称为可迭代的。可迭代对象几乎贯穿整门语言中
2、迭代器对象
迭代器对象可以是任意具有.next()
方法的对象,在for-of
循环中,将重复调用这个方法。其余的还有可选的.return()
和.throw(exc)
方法。
使用迭代器重写:
for(VAR of ITERABLE){
//some...
}
var $iterator = ITERABLE[Symbol.iterator]();
var $result = $iterator.next();
while (!$result.done){
VAR = $result.value;
//some...
$result = $iterator.next();
}
第三章·生成器Grenerators
生成器是一个迭代器
网友评论