9 ES6 迭代器级及、生成器

1楣富、Iterator迭代器 ->遵循迭代模式思想實現(xiàn)嗡呼,分為內(nèi)部迭代器源祈、外部迭代器虫溜,聚焦點:添加迭代接口

(1).迭代模式:其提供一種方法可順序獲得聚合對象中的各個元素合敦,其可讓用戶通過特定的接口巡防集合中的每個元素而不需了解底層實現(xiàn)桩皿,例如for, for..in..forEach();等豌汇; ->?最簡單、常見的設(shè)計模式

(2).迭代器興起原因:最初后端提供數(shù)組數(shù)據(jù)給前端泄隔,前端for循環(huán)遍歷即可拒贱,但由于業(yè)務(wù)逐漸變復(fù)雜,數(shù)據(jù)結(jié)構(gòu)也在逐步發(fā)生變化佛嬉,例如對象逻澳、Set、Map等暖呕,導(dǎo)致前端遍歷接口大量重寫 -> ES6提出了Iterator迭代器[Symbol.iterator]斜做;

內(nèi)部迭代器:for;? for...in..;? forEach();? $.each();? $().each();等? ->?系統(tǒng)提供好的;

外部迭代器:ES6中引入Iterator迭代器湾揽,將其部署在了Array,?字符串瓤逼,NodeList, arguments, Set, Map等數(shù)據(jù)的Symbol.iterator屬性上,使它們具備“迭代接口”库物;->?對象沒有迭代接口霸旗,我們可以手動添加;

迭代接口數(shù)據(jù)的“遍歷方法”:?for...of..; Array.from(); ...運算符戚揭; -> ES6提供的“更專業(yè)”的遍歷方法定硝;

補充:日常開發(fā)中 ->?普通數(shù)據(jù)使用for循環(huán)遍歷(聚焦點:循環(huán)圈數(shù));對象使用for..in遍歷操作(prop是屬性名毫目,不確定循環(huán)圈數(shù)蔬啡,不建議使用for循環(huán));數(shù)組使用forEach();Map();filter();系列方法镀虐;jQuery還提供了$.each(); $().each();?Array,?字符串箱蟆,NodeList, arguments, Set, Map等數(shù)據(jù)使用for..of(prop為屬性值); Array.from(); ...運算符即可; ->?實際它們底層封裝的都是for循環(huán)刮便;

(3).添加迭代接口空猜;

2、Generator生成器 -> 返回迭代對象恨旱,函數(shù)內(nèi)配合yield使用辈毯,其會分段執(zhí)行,遇到y(tǒng)ield即暫停?

- - - >>>?開發(fā)中經(jīng)常采用 "Generator生成器+promise對象+Co庫"?更加優(yōu)雅的解決回調(diào)地獄搜贤,巧妙的利用了Generator的特性谆沃,但Generator生成器的主要功能是生成“迭代對象”;ES7?async+await?底層實現(xiàn)有部分是Generator生成器+promise對象+Co庫仪芒,所以它可以理解為“語法糖”唁影,但其內(nèi)部不僅僅限于處理回調(diào)地獄,其還可以解決try..catch..捕獲異步錯誤掂名,以及解決同步并發(fā)的異步問題(有些牽強据沈,可理解為解決一些特殊需求),開發(fā)中主要是解決回調(diào)地獄饺蔑;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锌介,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子猾警,更是在濱河造成了極大的恐慌孔祸,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肿嘲,死亡現(xiàn)場離奇詭異融击,居然都是意外死亡,警方通過查閱死者的電腦和手機雳窟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門尊浪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人封救,你說我怎么就攤上這事拇涤。” “怎么了誉结?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵鹅士,是天一觀的道長。 經(jīng)常有香客問我惩坑,道長掉盅,這世上最難降的妖魔是什么也拜? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮趾痘,結(jié)果婚禮上慢哈,老公的妹妹穿的比我還像新娘。我一直安慰自己永票,他們只是感情好卵贱,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侣集,像睡著了一般键俱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上世分,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天编振,我揣著相機與錄音,去河邊找鬼罚攀。 笑死党觅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的斋泄。 我是一名探鬼主播杯瞻,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼炫掐!你這毒婦竟也來了魁莉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤募胃,失蹤者是張志新(化名)和其女友劉穎旗唁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痹束,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡检疫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祷嘶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屎媳。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖论巍,靈堂內(nèi)的尸體忽然破棺而出烛谊,到底是詐尸還是另有隱情,我是刑警寧澤嘉汰,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布丹禀,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏双泪。R本人自食惡果不足惜持搜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望焙矛。 院中可真熱鬧朵诫,春花似錦、人聲如沸薄扁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邓梅。三九已至,卻和暖如春邑滨,著一層夾襖步出監(jiān)牢的瞬間日缨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工掖看, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匣距,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓哎壳,卻偏偏與公主長得像毅待,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子归榕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容