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在线观看_国产在线观看免费麻豆_日本高清在线观看_亚洲免费网站观看视频
亚洲一区中文字幕在线| 国产一级片在线| 亚洲高清免费一级二级三级| 国产在线观看精品| 亚洲一区二区三区精品中文字幕| 在线视频国内一区二区| 日韩精品一区二区三区视频播放| 国产欧美日韩中文字幕在线| 久久麻豆视频| 国产高清在线观看| 日韩欧美一二三| 亚洲日产av中文字幕| 日韩在线视频一区| 久久91精品久久久久久秒播| 国产一级视频| 国产三级中文字幕| 91九色精品视频| 日韩亚洲不卡在线| 久久99精品国产| 欧美国产91| 国产99在线|亚洲| 亚洲一级影院| 日韩www在线| 91精品免费看| 91久久大香伊蕉在人线| 三级网站免费观看| 在线不卡一区二区| 亚洲成年网站在线观看| 欧美日韩国产91| 不卡中文一二三区| 精品国内自产拍在线视频| 国产欧美日韩在线播放| 免费中文字幕日韩欧美| 视频一区二区精品的福利| 91精品免费在线观看| 精品久久香蕉国产线看观看gif| 国产乱码午夜在线视频| 日韩在线播放一区二区| 国产婷婷色一区二区三区在线| 日韩欧美在线不卡| 欧美不卡123| 日韩影院二区| 日韩精品手机在线| 欧美日韩国产高清视频| 在线中文字幕视频| 精品成人久久av| 国产视频aaa| 欧美日韩高清不卡| wwwwww在线观看| 欧美成人vr18sexvr| 91蜜桃婷婷狠狠久久综合9色| 亚洲国产专区| 精品国产欧美日韩| 日韩精品一级| 日韩欧美中文免费| 亚洲日产av中文字幕| 亚洲视频资源在线| 欧美日韩在线综合| 亚洲一区中文字幕在线观看| 伊人亚洲视频| 亚洲欧美日本国产专区一区| 欧洲精品在线视频| 亚洲制服一区| 尤物av一区二区| 精品三级av| 亚洲永久字幕| 日韩欧美三级视频| 交视频在线观看国产| 午夜av一区二区| 国产在成人精品线拍偷自揄拍| 欧美日韩国产一级片| 91精品国产色综合久久久蜜香臀| 黄色国产在线| 中文在线不卡| 一区二区不卡视频| 中文字幕日韩精品在线| 久久久久蜜桃| 精品国产999| 久久中文精品| 日韩精品视频中文在线观看| 成片免费观看| 亚洲第一网中文字幕| 国产超级va在线视频| 亚洲高清中文字幕| 欧美日韩中文国产| 一区二区三区鲁丝不卡| 91精品国产自产| 婷婷久久综合九色国产成人| 内射国产内射夫妻免费频道| 亚洲一区精品电影| 欧美精选午夜久久久乱码6080| 日韩欧美在线视频日韩欧美在线视频| 欧美日韩中文字幕视频| 在线国产日本| 欧美日韩一级片在线观看| 成人一区而且| 中文字幕无线码一区| 日韩欧美久久久| 欧美在线视频一区二区| 国产成人精品免费在线| 中文在线一区二区| 日韩一级网站| 精品福利二区三区| 欧美亚洲国产日韩2020| 樱花草www在线| 久久福利视频一区二区| 午夜视频在线观看一区| 九色蝌蚪视频在线| 国产v日产∨综合v精品视频| 日韩在线一区二区视频| 久久人人88| 一区二区中文字幕在线| 欧美日韩中文字幕精品| 午夜国产在线视频| 日韩精品首页| 中文字幕综合在线| 国产69精品久久久久孕妇国产69久久| 久久永久免费视频| 韩国一区二区av| 日韩精品在线视频| 国产999精品在线观看| 日韩在线播放一区二区| 999精品视频在线观看播放| 日韩免费精品视频| 日韩视频第二页| 1区2区3区在线视频| 久久久久久99精品| 日韩久久精品视频| 高清不卡一区二区| 日韩中文字幕综合| 欧美中文字幕| a视频在线播放| 久久久久久久久99精品| 日韩欧美中文字幕在线视频| 色猫猫国产区一区二在线视频| 日韩精品在线观看视频| 日韩国产欧美亚洲| 欧美一卡2卡三卡4卡5免费| 国产亚洲一区字幕| 亚洲综合三区| 一区二区三区精品99久久| 久久精品日韩欧美| 交视频在线观看国产| www.xxxx精品| 欧美精品一区二区三区在线播放| 一本大道一区二区三区| 国产欧美久久久精品免费| 免费在线观看国产黄| 美女免费视频一区| 中文字幕一区不卡| 伊人永久在线| 91极品视频在线观看| 91精品国产丝袜白色高跟鞋| 国产亚洲人成a一在线v站| 粉嫩喷白浆久久| 在线日韩中文| 欧美日韩在线精品一区二区三区激情综| 国产 日韩 欧美 综合| 日韩a一区二区| 免费高清视频日韩| 日韩欧美国产黄色| 欧美三级网址| 中文字幕久久精品| 人人做人人澡人人爽欧美| 久久99久久久欧美国产| 欧美精选午夜久久久乱码6080| 日韩精品国产欧美| 精品视频1区2区3区| 欧美不卡视频一区发布| 午夜精品一区二区三区视频免费看| 欧美日韩国产首页| 亚洲热在线观看| av免费在线观看网址| 成人a在线视频免费观看| 91精品在线观| 一级片免费在线播放| 久草视频在线看| 成人ww免费完整版在线观看| 中文字幕视频一区二区三区久| 日韩视频1区| 国产欧美日韩91| 欧美日韩中国免费专区在线看| 精品久久在线观看| 蜜桃久久久久| 欧美日韩在线看| 久久久久黄色| 日韩欧美在线视频日韩欧美在线视频| 中文字幕五月天| 中文字幕日韩在线观看| 国产免费久久| www.精品av.com| 国产成人精品日本亚洲专区61| 高清国产一区| 国产 日韩 欧美 综合 一区| 另类专区欧美| 日韩在线不卡| 国内精品不卡| 亚洲日本欧美日韩高观看| 日韩你懂的电影在线观看| 欧美1区免费| 国产日韩中文在线| 在线中文免费视频| 91精品久久久久| 精品中文字幕在线| 日韩区欧美区| 99色在线视频| 欧美亚洲专区| 国精品产品一区| 欧美中文字幕在线视频| 伊人www22综合色| 欧美日韩精品是欧美日韩精品| 一区二区在线看| 精品在线观看一区| 日本国产一区| 国产真实乱子伦精品视频| 国产成人精品日本亚洲专区61| 国产嫩草影院久久久久| 国产中文在线| 欧美午夜精品在线| 中文字幕日韩高清| 最新中文字幕在线| 久久99久久久久| 中文字幕在线观看网址| av三级在线观看| 日韩欧美视频一区二区三区四区| 欧美日韩中文在线| 国产欧亚日韩视频| 日韩欧美在线视频日韩欧美在线视频| 91精品日本| 亚洲图片小说综合| 国产视频中文字幕在线观看| 日韩高清在线一区二区| 日本精品专区| 国产无套粉嫩白浆在线2022年| 日韩一级二级三级精品视频| 国产一区不卡精品| 午夜国产福利在线观看| a在线观看免费视频| 亚洲v中文字幕| 欧美日韩亚洲国产综合| 日本精品二区| 中文字幕在线导航| 中文字幕国产欧美| 亚洲va韩国va欧美va精品| 日韩高清不卡一区| 精品1区2区3区| 精品国产综合久久| 91精品国产综合久久福利| 久久99蜜桃精品久久久久小说| 精品视频—区二区三区免费| 久艹在线视频| 欧美日韩综合色| 91久久在线| 欧美自拍一区| 国产1卡2卡三卡四卡网站| 日韩亚洲一区在线| 中文字幕成人乱码在线电影| 欧美日韩国产首页在线观看| 一本一道久久a久久精品综合蜜臀| 亚洲一区视频在线观看视频| 国产69精品久久app免费版| 亚洲成a人片在线www| 中文不卡在线| 国产亚洲人成a一在线v站| 二区视频在线观看| 久久手机免费观看| 视频一区中文字幕国产| 91精品国产免费久久综合| 亚洲日本精品视频| 午夜国产福利一区二区| 国产一区成人| 日本熟女一区二区| 91精品视频播放| 日韩欧美中文字幕在线视频| 亚洲欧美中文字幕| www高清在线视频日韩欧美| 久久91精品视频| 一区二区精品免费| 国产天堂素人系列在线视频| 日韩欧美高清在线视频| 99视频精品全国免费| 日韩午夜高潮| 精品在线网站观看| 日韩精品首页| 欧美三级在线看| 午夜一区二区视频| 欧美日本精品| 亚洲欧洲精品在线| 日韩在线二区| 中文字幕亚洲免费| 日韩欧美在线视频日韩欧美在线视频| 日韩精品欧美在线| 亚洲第一福利视频在线| 国产一区 二区 三区一级| 九色蝌蚪视频在线| 国产在线观看黄色| 欧美国产综合在线V| 中文字幕欧美在线| 精品熟女一区二区三区| 久久久精品免费免费| 欧美日韩视频网站| 日韩精品丝袜在线| 久久久久蜜桃| 国产一级视频在线播放| 精品日韩视频| 美女免费视频一区| 一级日本免费的| 玖玖在线免费视频| 欧美日韩精品高清| 欧美日韩视频免费看| 国产福利一区二区| 97久久精品| 欧美色视频一区二区三区在线观看| 欧美三级中文字幕在线观看| 91精品免费观看| 精品国产乱码久久久久久牛牛| 一区免费视频| 日韩高清不卡一区二区| 欧美日韩三级视频| 精品播放一区二区| 国产亚洲福利| 不卡视频一区二区| 精品在线99| 国产区视频在线观看| 精品婷婷伊人一区三区三| 天堂在线中文资源| 日韩欧美一级精品久久| 欧美日韩在线视频一区| 精品调教chinesegay| 91精品国产综合久久福利| 91精品无人成人www| 一本一道久久a久久精品综合蜜臀| 不卡一二三区| 视频一区二区中文字幕| 一区二区视频免费看| 欧美 日韩 国产在线观看| 91精品国产91久久久久久久久| 国产69精品久久久久孕妇国产69久久| 国产三级做爰在线观看| 不卡中文一二三区| 国产成人中文字幕| 黄色精品在线观看| 中文字幕欧美人妻精品一区蜜臀| 在线欧美一级视频| 日本黄色一区二区| 91精品视频国产| 91精品国产全国免费观看| 一级特黄大欧美久久久| 欧美成人二区| 日韩高清不卡一区| 成人精品视频一区| 91精品国产综合久久久蜜臀粉嫩| 国产一二三区精品视频| 国产欧美 在线欧美| 美国av一区二区| 欧美熟妇乱码在线一区| 天堂精品高清1区2区3区| 91精品国产综合久久久久久| 国产高清不卡av| 国产三级在线播放| 日韩欧美国产免费| 国内精品露脸在线视频播放| 国产黄色在线| 亚洲第一中文字幕在线观看| 免费视频最近日韩| 色综合久久六月婷婷中文字幕| 国产劲爆久久| 中文精品视频| 欧美日韩亚洲91| 欧美久久在线| 国产v日产∨综合v精品视频| 免费在线观看国产黄| 国产视频一区三区| 久久精品国产99| 国产精品福利视频一区二区三区| 日韩免费精品| 91精品国产综合久久香蕉最新版| 久久视频www| 刘玥91精选国产在线观看| 欧美日韩中文字幕综合视频| 国产乱码在线观看| 国内激情久久| 久久视频在线免费观看| 91精品国产综合久久久久久| 亚洲高清免费一级二级三级| 国产在线中文字幕| 亚洲一区三区在线观看| 国产区视频在线观看| 国产欧美中文字幕| 日韩欧美三级在线| 亚洲大片精品永久免费| 91蜜桃在线视频| 日韩欧美在线看| 日韩欧美三级| 欧美 日韩 国产在线| 中文字幕99| 成人a在线视频免费观看| 久久99精品久久久久久青青日本| 蜜桃视频一日韩欧美专区| 九九视频精品免费|