av素人天堂_free性亚洲_久久亚洲国产视频_国产网红在线_午夜av在线播放_欧美成人精品福利网站_热99在线观看_国产在线观看免费麻豆_日本高清在线观看_亚洲免费网站观看视频

JavaScript中函數(shù)后面打星號(hào)方式聲明

function*?這種聲明方式(function關(guān)鍵字后跟一個(gè)星號(hào))會(huì)定義一個(gè)生成器函數(shù)?(generator function),它返回一個(gè) ?Generator??對象。

function* generator(i) {
  yield i;
  yield i + 10;
}

const gen = generator(10);

console.log(gen.next().value);
// expected output: 10

console.log(gen.next().value);
// expected output: 20

語法

function* name([param[, param[, ... param]]]) { statements }
name
函數(shù)名
param
要傳遞給函數(shù)的一個(gè)參數(shù)的名稱,一個(gè)函數(shù)最多可以有255個(gè)參數(shù)。
statements
普通JS語句。

描述

生成器函數(shù)在執(zhí)行時(shí)能暫停,后面又能從暫停處繼續(xù)執(zhí)行。

調(diào)用一個(gè)生成器函數(shù)并不會(huì)馬上執(zhí)行它里面的語句,而是返回一個(gè)這個(gè)生成器的?迭代器?(?iterator?)對象。當(dāng)這個(gè)迭代器的?next()?方法被首次(后續(xù))調(diào)用時(shí),其內(nèi)的語句會(huì)執(zhí)行到第一個(gè)(后續(xù))出現(xiàn)yield的位置為止,yield?后緊跟迭代器要返回的值?;蛘呷绻玫氖?span>?yield*(多了個(gè)星號(hào)),則表示將執(zhí)行權(quán)移交給另一個(gè)生成器函數(shù)(當(dāng)前生成器暫停執(zhí)行)。

next()方法返回一個(gè)對象,這個(gè)對象包含兩個(gè)屬性:value 和 done,value 屬性表示本次?yield?表達(dá)式的返回值,done 屬性為布爾類型,表示生成器后續(xù)是否還有?yield?語句,即生成器函數(shù)是否已經(jīng)執(zhí)行完畢并返回。

調(diào)用?next()方法時(shí),如果傳入了參數(shù),那么這個(gè)參數(shù)會(huì)傳給上一條執(zhí)行的 yield語句左邊的變量,例如下面例子中的?x?

function *gen(){
    yield 10;
    x=yield 'foo';
    yield x;
}

var gen_obj=gen();
console.log(gen_obj.next());// 執(zhí)行 yield 10,返回 10
console.log(gen_obj.next());// 執(zhí)行 yield 'foo',返回 'foo'
console.log(gen_obj.next(100));// 將 100 賦給上一條 yield 'foo' 的左值,即執(zhí)行 x=100,返回 100
console.log(gen_obj.next());// 執(zhí)行完畢,value 為 undefined,done 為 true

當(dāng)在生成器函數(shù)中顯式?return?時(shí),會(huì)導(dǎo)致生成器立即變?yōu)橥瓿蔂顟B(tài),即調(diào)用?next()?方法返回的對象的?done?為?true。如果?return?后面跟了一個(gè)值,那么這個(gè)值會(huì)作為當(dāng)前調(diào)用?next()?方法返回的 value 值。

 

示例

簡單示例

function* idMaker(){
  var index = 0;
  while(index<3)
    yield index++;
}

var gen = idMaker();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // undefined

生成器也可以接收參數(shù):

 

function* idMaker(){
    var index = arguments[0] || 0;
    while(true)
        yield index++;
}

var gen = idMaker(5);
console.log(gen.next().value); // 5
console.log(gen.next().value); // 6

yield*的示例

function* anotherGenerator(i) {
  yield i + 1;
  yield i + 2;
  yield i + 3;
}

function* generator(i){
  yield i;
  yield* anotherGenerator(i);// 移交執(zhí)行權(quán)
  yield i + 10;
}

var gen = generator(10);

console.log(gen.next().value); // 10
console.log(gen.next().value); // 11
console.log(gen.next().value); // 12
console.log(gen.next().value); // 13
console.log(gen.next().value); // 20

?傳遞參數(shù)

function *createIterator() {
    let first = yield 1;
    let second = yield first + 2; // 4 + 2 
                                  // first =4 是next(4)將參數(shù)賦給上一條的
    yield second + 3;             // 5 + 3
}

let iterator = createIterator();

console.log(iterator.next());    // "{ value: 1, done: false }"
console.log(iterator.next(4));   // "{ value: 6, done: false }"
console.log(iterator.next(5));   // "{ value: 8, done: false }"
console.log(iterator.next());    // "{ value: undefined, done: true }"

顯式返回

function* yieldAndReturn() {
  yield "Y";
  return "R";//顯式返回處,可以觀察到 done 也立即變?yōu)榱?true
  yield "unreachable";// 不會(huì)被執(zhí)行了
}

var gen = yieldAndReturn()
console.log(gen.next()); // { value: "Y", done: false }
console.log(gen.next()); // { value: "R", done: true }
console.log(gen.next()); // { value: undefined, done: true }

生成器函數(shù)不能當(dāng)構(gòu)造器使用

function* f() {}
var obj = new f; // throws "TypeError: f is not a constructor"

?使用迭代器遍歷二維數(shù)組并轉(zhuǎn)換成一維數(shù)組:

function* iterArr(arr) {            //迭代器返回一個(gè)迭代器對象
  if (Array.isArray(arr)) {         // 內(nèi)節(jié)點(diǎn)
      for(let i=0; i < arr.length; i++) {
          yield* iterArr(arr[i]);   // (*)遞歸
      }
  } else {                          // 離開     
      yield arr;
  }
}
// 使用 for-of 遍歷:
var arr = ['a', ['b', 'c'], ['d', 'e']];
for(var x of iterArr(arr)) {
        console.log(x);               // a  b  c  d  e
 }

// 或者直接將迭代器展開:
var arr = [ 'a', ['b',[ 'c', ['d', 'e']]]];
var gen = iterArr(arr);
arr = [...gen];                        // ["a", "b", "c", "d", "e"]

?兼容性

 

 

 

 


 

上一篇 ES6中的異步詳解
下一篇 利用Fiddler調(diào)試微信網(wǎng)頁js
目錄
applek

applek管理員

個(gè)人說明在個(gè)人中心里面設(shè)置

本月創(chuàng)作熱力圖

最新評(píng)論
chinacnd
chinacnd
6月26日
這個(gè)主題是怎么做到加載速度那么快的?
風(fēng)起云涌
風(fēng)起云涌
6月17日
前臺(tái)投稿現(xiàn)在有點(diǎn)太抽象了 希望可以弄成那種分區(qū)填寫的 標(biāo)題,內(nèi)容,圖片,目錄,標(biāo)簽,這樣的
評(píng)論于留言建議
風(fēng)起云涌
風(fēng)起云涌
6月17日
希望加個(gè)開關(guān)去掉頁腳的站點(diǎn)身份,還有自定義頁腳居中文字
評(píng)論于留言建議
卡卡
卡卡
5月31日
倒是放個(gè)演示地址啊
評(píng)論于AeroCore 主題發(fā)布
av素人天堂_free性亚洲_久久亚洲国产视频_国产网红在线_午夜av在线播放_欧美成人精品福利网站_热99在线观看_国产在线观看免费麻豆_日本高清在线观看_亚洲免费网站观看视频
亚洲第一网中文字幕| 国产欧美一级| 99视频精品全国免费| 国产主播中文字幕| 91精品视频免费在线观看| 91精品国产综合久久久久久| 黄色国产在线| 久久久精品免费免费| 中文字幕国产欧美| 国产福利一区二区| 在线中文免费视频| 国产黄色小视频| 国产一级片在线播放| 欧美成人一区二区| 精品国产99久久久久久| 国产亚洲欧美色| 欧美日韩性视频| 中文字幕精品在线| 黄色一区二区视频| 又黄又www的网站| 欧美亚洲国产免费| 日韩 欧美 综合| 日韩av一区二区在线| 在线中文字幕视频| 91精品国产91久久久久| 欧美三级免费观看| 亚洲а∨精品天堂在线| 久本草在线中文字幕亚洲欧美| 91精品久久久久久久久久入口| 国产午夜精品视频| 国产日韩电影| 欧美日韩国产第一页| 精品国产1区2区3区| 国内精品99| 韩国av一区二区| 国产三级精品网站| 亚洲成av人综合在线观看| 中文字幕在线视频精品| 一区二区在线观| 国产精品视频福利一区二区| 国自产拍在线网站网址视频| 天堂精品高清1区2区3区| 午夜精品一区二区三区视频免费看| 亚洲娇小xxxx欧美娇小| 欧美日韩国产亚洲一区| 欧美三级免费观看| 亚洲成av人综合在线观看| 亚洲第一视频网站| 一区二区三区精品久久久| 国产最新在线| 午夜一区二区视频| 91精品国产亚洲| 日本一欧美一欧美一亚洲视频| 日本不卡免费高清视频| 国产三级中文字幕| 亚洲天堂国产视频| 国产在线一区二区视频| 欧美日韩在线观看首页| 国产免费久久| 91亚洲国产| 国产日韩中文字幕| 精品精品久久| 亚洲第一网中文字幕| 午夜精品一区二区三区免费视频| 99久久久精品免费观看国产| 香蕉人人精品| 日韩va亚洲va欧洲va国产| 中文字幕久久精品| 免费在线亚洲| 欧美日韩第一区日日骚| 国产婷婷在线观看| 日韩欧美一级二级三级久久久| 在线视频国产三级| 中文官网资源新版中文第二页在线观看| 精品欧美久久久| 91精品国产亚洲| 麻豆一区二区99久久久久| 日韩欧美国产免费播放| 日韩精品视频在线播放| 91av久久久| 婷婷中文字幕综合| 在线免费播放av| 国产三级在线播放| 久久蜜桃精品| 精品国产欧美日韩不卡在线观看| 中文字幕在线视频网| www在线播放| 日韩国产欧美亚洲| 91精品国产免费| 不卡一二三区| 青青国产91久久久久久| 不卡专区在线| wwwww亚洲| 欧美乱大交xxxxx免费| 亚洲人线精品午夜| 97久久精品| 日韩在线视频精品| 国产在线欧美| 午夜精品免费视频| 大香一本蕉伊线亚洲网| 91久久精品午夜一区二区| 中文字幕在线视频网| 欧洲精品在线视频| 国产午夜精品视频免费不卡69堂| 91精品视频在线| 成人精品视频一区| 在线精品视频免费播放| 不卡中文一二三区| 日韩国产欧美亚洲| 精品国产免费视频| 91精品久久久久久久久久入口| 一区二区中文字幕在线| 日韩亚洲一区在线| 日韩欧美久久久| 99视频精品全国免费| 日韩欧美国产黄色| 91精品无人成人www| 中文字幕 欧美日韩| 91精品在线观| 日韩中文字幕在线播放| 国产黄在线播放| 欧美1234区| 91精品国产高清91久久久久久| 精品九九久久| 日韩欧美在线字幕| 亚洲福利视频在线| 日韩久久精品成人| 99久久www免费| 欧美日韩一二三四| 国产农村妇女精品一二区| 久久永久免费视频| 日韩视频国产视频| 精品久久电影| 在线欧美一级视频| 国内国产区免费视频| 中文字幕 乱码 中文乱码91| 在线黄色国产电影| 精品一区二区三区中文字幕| 日韩你懂的电影在线观看| 亚洲国产福利| 97最新国自产拍视频在线完整在线看| 日韩欧美在线视频| 国产成人一区二区精品非洲| 色综合天天综合网国产成人综合天| 不卡视频一区二区三区| 国产视频97| 日韩手机在线观看视频| av免费网站在线观看| 日韩三级视频中文字幕| 69免费视频| 97国产视频| 日韩欧美亚洲国产| 99pao成人国产永久免费视频| 欧美日韩国产首页在线观看| 国产乱码在线| 中文精品视频| 一区视频在线播放| 免费精品国产自产拍观看| 999精品在线| 亚洲一区导航| 精品极品三级久久久久| 一区二区高清在线| 日韩中文字幕观看| 国产欧美日韩精品在线观看| 中文字幕亚洲一区二区av在线| 欧美不卡视频一区发布| 国产成人精品免费网站| 中文天堂资源在线| 日韩欧美国产网站| 国产免费永久在线观看| 亚洲国产91精品在线观看| 99久久久精品免费观看国产| 欧美日韩综合在线观看| 日韩三区免费| 亚洲欧美99| 日本国产一区| 91精品国产综合久久香蕉的特点| 国产高清不卡av| 国产最顶级的黄色片在线免费观看| 午夜视频在线观看一区| 中文亚洲免费| 99亚洲视频| 国产高清不卡av| 亚洲一区日韩精品中文字幕| 久久婷婷综合国产| 中文字幕亚洲在| 国产www在线观看| 欧美在线视频一区二区| 在线观看av的网站| 欧美激情一区二区三区在线| 国产视频中文字幕在线观看| 日韩三区免费| 91精品国产91久久久久久久久| 一区三区视频| 欧美不卡123| 欧美日韩中文字幕一区| 日韩精品视频免费看| 一区二区三区精品在线| 日韩精品久久久| 在线观看一区日韩| 日韩在线欧美| 欧美一级一级性生活免费录像| 亚洲第一福利视频在线| 国产在线一区二区视频| 91精品蜜臀在线一区尤物| 日韩视频1区| 91精品免费看| 欧洲一级精品| 一区二区三区四区五区视频在线观看| 国产又粗又猛又爽又黄91精品| 91吃瓜在线观看| 一级特黄aaa大片在线观看| 国产欧美第一页| 亚洲日本欧美日韩高观看| 91精品国产丝袜白色高跟鞋| 深夜福利一区二区| 一区二区在线视频播放| 欧美不卡一区二区| 一二三区精品福利视频| 中文字幕欧美日韩va免费视频| 日韩精品在线观看视频| 久久久综合av| 国产黄色片中文字幕| 欧美日韩亚洲第一| 欧美三级日本三级少妇99| 综合图区亚洲白拍在线| 欧美一级欧美三级在线观看| 亚洲欧洲日韩在线| 亚洲国产一区自拍| 91精品国产91久久久久久不卡| 欧美日韩三级在线观看| www.尤物.com| 一区二区不卡视频| 中文字幕在线看视频国产欧美| 99久久婷婷| 国产1区在线| 91精品久久久久久久久| 亚洲欧洲综合另类| 日韩欧美在线不卡| 国产 中文 字幕 日韩 在线| 色妇色综合久久夜夜| av中文在线资源| 中文字幕精品国产| 亚洲 欧美 中文字幕| 亚洲欧美日本国产专区一区| 亚洲福利视频在线| 日本亚洲欧美三级| 91精品国产手机| 欧美中文字幕在线视频| 欧美性生交大片免费| 久草视频在线看| 精品日本视频| 中文字幕在线看视频国产欧美| 91精品国产入口| 精品国产91| 视频一区不卡| 日韩精品视频免费看| 亚洲三级免费看| 国产福利免费在线观看| 日韩视频1区| 1024国产在线| 国产在线观看精品| 中文字幕第一页在线播放| 中文字幕在线观看国产| 91日韩欧美| 一区视频在线播放| 国产成人精品网址| 国产婷婷色一区二区三区在线| 91精品蜜臀在线一区尤物| 日韩av一区二区在线观看| 免费视频一区三区| 精品999在线| 中文字幕狠狠干| 欧美国产一级| 国产不卡一区二区在线观看| 欧美久久久久久蜜桃| 中文在线日韩| 精品久久在线观看| 中文字幕亚洲一区在线观看| 久久久精品日韩| 一区三区二区视频| 日韩精品视频网站| 欧美激情视频一区二区三区在线播放| 又黄又www的网站| 99国产一区| 国产导航在线| 91精品国产91久久久久久久久| 国产成人一区二区精品非洲| 日韩欧美中文字幕视频| 日韩中文字幕网| 久久精品最新免费国产成人| 欧美日中文字幕| 国产三级在线播放| 亚洲一区中文字幕在线| 国产欧美日韩视频在线| 一区二区不卡久久精品| wwwww亚洲| 欧美日韩高清一区二区| 国产欧美自拍一区| 欧美日韩中文字幕| 日韩你懂的电影在线观看| 国产在线观看a| 亚洲一二三不卡| 在线观看中文字幕一区| 日韩久久不卡| 国产成人精品综合网站| 日韩在线视频免费观看高清中文| 一级日韩一级欧美| 一区二区高清在线| 日韩欧美高清在线| 精品亚洲综合| 久久精品网站免费观看| 国产成人精品三级| 欧美国产综合视频| 日本精品专区| 国产一卡二卡3卡4卡四卡在线| 中文字幕精品视频在线| 中文字幕在线视频精品| 国产婷婷色一区二区三区在线| 色www精品视频在线观看| 日本精品国语自产拍在线观看| 国产永久在线观看| 玖玖在线免费视频| 国产成人日日夜夜| 91精品久久久久久久久久| 亚洲成人7777| 中文精品电影| 国产黄色片大全| 一区二区三区在线播| 91精品国产色综合久久不卡蜜臀| 久久久水蜜桃| 日韩精品在线观| 精品一区二区三区中文字幕| 中文字幕在线观看网址| 精品福利在线观看| 国产日韩精品在线观看| 国产三级精品网站| 国产三级在线观看视频| 国产农村妇女精品一二区| 国产亚洲视频中文字幕视频| 日韩欧美亚洲视频| 日韩精品大片| 高清中文字幕在线| 日韩高清不卡在线| 亚洲男女av一区二区| 91精品国产丝袜白色高跟鞋| 日韩字幕在线观看| 一本一道综合狠狠老| 婷婷精品视频| 日韩精品手机在线| 91欧美在线视频| 久久香蕉一区| 免费在线亚洲| 日韩国产91| 一区二区三区鲁丝不卡| av免费不卡国产观看| 欧美日韩中国免费专区在线看| 国内精品露脸在线视频播放| 欧美不卡视频一区| 日韩精品在线私人| 欧美日韩国产首页在线观看| 久久视频在线免费观看| 欧美日韩免费不卡视频一区二区三区| 成人精品视频一区| 日韩精品在线网站| 在线国产三级| 中文字幕精品国产| 国产三级视频网站| 色屁屁一区二区| 色国产在线视频| 天天综合天天| 日本亚洲欧美三级| 日韩精品视频在线看| 九色蝌蚪视频在线| 日韩www在线| 香蕉精品久久| 精品在线观看一区| 国产欧美久久久精品免费| 亚洲一区在线观看免费| 免费看黄资源大全高清| 亚洲国产福利视频| 91精品国产经典在线观看| av最新网址| 国产福利久久久| 欧美日韩免费不卡视频一区二区三区| 国产在线黄色| 91精品国产自产91精品| 亚洲影视资源网| 亚洲乱码一区av黑人高潮| 91精品视频免费在线观看| 中文欧美日韩| 国产区高清在线| 一区二区三区在线|网站| 欧美日韩精品高清| 国产天堂素人系列在线视频| 欧美不卡视频一区| 77777_亚洲午夜久久多人| 视频一区二区不卡| 日韩欧中文字幕| 欧美日韩中文字幕精品|