對于原生部署 Iterator 接口的數(shù)據(jù)結(jié)構(gòu),不用自己寫遍歷器生成函數(shù),for...of循環(huán)會(huì)自動(dòng)遍歷它們。下面是采用for..of循環(huán):let values = [1, 2, 3];for (let num of values) {console.log(num); // 1 2 3}下面是手動(dòng)創(chuàng)建迭代器,并獲取迭代對象let values = [1, 2, 3];let iter = values[Symbol.iterator]();iter.next(); // {value: 1, done: false}iter.next(); // {value: 2, done: false}iter.next(); // {value: 3, done: false}iter.next(); // {value: undefined, done: true}這兩種結(jié)果為什么會(huì)不一樣?for...of最后遍歷的并沒有輸出undefined的結(jié)果
for..of默認(rèn)調(diào)用Symbol.iterator和手動(dòng)調(diào)用的結(jié)果為什么不一樣?
動(dòng)漫人物
2018-12-13 18:10:10