欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ES6生成器用法實例分析

 更新時間:2017年04月10日 09:39:36   作者:布瑞澤的童話  
這篇文章主要介紹了ES6生成器用法,結(jié)合實例形式分析了ECMAScript6中生成器的概念、語法、使用方法與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了ES6生成器用法。分享給大家供大家參考,具體如下:

語法

何為生成器?讓我們先看看以下代碼:

function* quips(name) {
 yield "hello " + name + "!";
 yield "i hope you are enjoying the blog posts";
 if (name.startsWith("X")) {
  yield "it's cool how your name starts with X, " + name;
 }
 yield "see you later!";
}

你沒有看錯,這就是JavaScript代碼。是不是和你曾經(jīng)認識的javascript不太一樣。這個函數(shù)就叫做生成器函數(shù)。生成器函數(shù)看起來和普通的函數(shù)是不是有點相像呢?

它們的區(qū)別如下:

一般的函數(shù)以function開頭,而生成器函數(shù)以function* 開頭。

生成器函數(shù)中有一個特殊關(guān)鍵字就是yield,作用就是暫停函數(shù)。配合next方法來調(diào)用可以達到一步一步的執(zhí)行函數(shù)的目的。

我們看看next方法的使用:

> var iter = quips("lf");
 [object Generator]
> iter.next()
 { value: "hello lf!", done: false }
> iter.next()
 { value: "i hope you are enjoying the blog posts", done: false }
> iter.next()
 { value: "see you later!", done: false }
> iter.next()
 { value: undefined, done: true }

可以看到,每一次next方法后,生成器函數(shù)就執(zhí)行到下一個yield位置處。

基本的生成器語法就講完了。

應(yīng)用

生成器可以用來異步編程,我在之前的文章中有過介紹,可以參考前面一篇《基于javascript的異步編程實例詳解

但是需要注意的是,生成器并不是用來寫異步的,這僅僅是一種hack手段而已。

希望本文所述對大家ECMAScript程序設(shè)計有所幫助。

相關(guān)文章

  • JavaScript數(shù)組塌陷實例解析

    JavaScript數(shù)組塌陷實例解析

    這篇文章主要為大家介紹了JavaScript數(shù)組塌陷實例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • D3.js實現(xiàn)繪制和弦圖的教程詳解

    D3.js實現(xiàn)繪制和弦圖的教程詳解

    弦圖,是一種表示實體之間相互關(guān)系的圖形方法。這篇文章主要為大家詳細介紹了如何通過D3.js實現(xiàn)繪制和弦圖,文中的示例代碼講解詳細,對我們學(xué)習(xí)D3.js有一定的幫助,需要的可以參考一下
    2022-11-11
  • js實現(xiàn)按鈕顏色漸變動畫效果

    js實現(xiàn)按鈕顏色漸變動畫效果

    這篇文章主要介紹了js實現(xiàn)按鈕顏色漸變動畫效果的方法,涉及javascript鼠標事件及頁面表單元素樣式的動態(tài)操作技巧,需要的朋友可以參考下
    2015-08-08
  • JS判斷字符串是否全為空的兩種方式

    JS判斷字符串是否全為空的兩種方式

    當(dāng)我們需要判斷用戶輸入的是否全是空格,或用戶在不輸入內(nèi)容的情況下使用回車發(fā)送,此時我們?nèi)绻枨髢?nèi)容不能為空,常規(guī)判斷無法識別,空格本身也有l(wèi)ength,這個時候就可使用到下列兩種方式
    2023-10-10
  • uniapp踩坑實戰(zhàn)之文件查找失敗:'uview-ui'?at?main.js解決辦法

    uniapp踩坑實戰(zhàn)之文件查找失敗:'uview-ui'?at?main.js解決辦法

    這篇文章主要給大家介紹了關(guān)于uniapp踩坑實戰(zhàn)之文件查找失敗:'uview-ui'?at?main.js的解決辦法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • js實現(xiàn)獲取div坐標的方法

    js實現(xiàn)獲取div坐標的方法

    這篇文章主要介紹了js實現(xiàn)獲取div坐標的方法,通過調(diào)用jQuery插件實現(xiàn)獲取div元素坐標的功能,非常簡單實用,需要的朋友可以參考下
    2015-11-11
  • js實現(xiàn)橫向伸展開的二級導(dǎo)航菜單代碼

    js實現(xiàn)橫向伸展開的二級導(dǎo)航菜單代碼

    這篇文章主要介紹了js實現(xiàn)橫向伸展開的二級導(dǎo)航菜單代碼,涉及javascript鼠標事件及頁面元素遍歷的相關(guān)技巧,需要的朋友可以參考下
    2015-08-08
  • layui問題之自動滾動二級iframe頁面到指定位置的方法

    layui問題之自動滾動二級iframe頁面到指定位置的方法

    今天小編就為大家分享一篇layui問題之自動滾動二級iframe頁面到指定位置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • layer實現(xiàn)彈窗提交信息

    layer實現(xiàn)彈窗提交信息

    這篇文章主要為大家詳細介紹了layer實現(xiàn)彈窗提交信息的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • video.js 一個頁面同時播放多個視頻的實例代碼

    video.js 一個頁面同時播放多個視頻的實例代碼

    這篇文章主要介紹了video.js 一個頁面同時播放多個視頻的實例代碼 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11

最新評論