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對(duì)象的遍歷。
**Map對(duì)象需要解構(gòu)息尺,如下例
for(var [key, value] of phoneBookMap){
console.log(key + "'s phone number is: " + value);
}
可以給任意類型的對(duì)象添加迭代器方法,就像myObject.toString()
以及 myObject[Symbol.iterator]()
疾掰,然后就可以遍歷這個(gè)對(duì)象了搂誉。
所有擁有[Symbol.iterator]()
的對(duì)象被稱為可迭代的【裁剩可迭代對(duì)象幾乎貫穿整門(mén)語(yǔ)言中
2炭懊、迭代器對(duì)象
迭代器對(duì)象可以是任意具有.next()
方法的對(duì)象并级,在for-of
循環(huán)中,將重復(fù)調(diào)用這個(gè)方法侮腹。其余的還有可選的.return()
和.throw(exc)
方法嘲碧。
使用迭代器重寫(xiě):
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
生成器是一個(gè)迭代器