ECMAScript 6 (ES6)
JavaScript屬于ES的擴(kuò)展。
第二章·迭代器和for-of循環(huán)
1、ES6新增了for-of
循環(huán)
for (var value of myArray){
console.log(value);
}
能夠正確相應(yīng)break、return等
支持Map和Set對象的遍歷。
**Map對象需要解構(gòu),如下例
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
循環(huán)中,將重復(fù)調(diào)用這個方法。其余的還有可選的.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
生成器是一個迭代器