在 es6 中新增了生成器函式的語法,本文解釋了生成器函式內 yield 關鍵字的返回值。
根據語法規範,yield 關鍵字用來暫停和繼續執行乙個生成器函式。當外部呼叫生成器的 next() 方法時,yield 關鍵字右側的表示式才會執行。
執行結果會轉化為乙個物件(包含兩個屬性, value 和 done),作為 next() 方法的返回值。
對於 var foo = yield expression 語句,yield 左側變數 foo 的值將在下一次呼叫 next() 方法時獲得,並且等於呼叫時 next() 方法的引數。
首先構造乙個生成器函式。
function*numbers()var nums = numbers();
下面呼叫生成器函式。
//第 1 次呼叫 next, v1 的值還沒有返回.
console.log(nums.next(2));
程式輸出如下。
function start.
接著,執行第二次呼叫。
//第 2 次呼叫 next, next 引數作為上一次 yield 值返回給 v1.
console.log(nums.next(3));
此時程式輸出如下。
v1 = 3
最後,執行第三次呼叫。
//第 3 次呼叫 next, 此時 done 的值為 true, 直接返回 return 的值.
console.log(nums.next(4));
程式結束執行,輸出如下。
v2 = 4
yield 關鍵字
生成器函式語法 (function*)
非同步操作和async函式
理解ES6中class語法
function point result point.prototype.add function var num new point add 建立例項並呼叫add方法 console.log num 列印這個方法的返回值1.宣告類 class point add let num new poin...
es6中reduce的用法 Es6基礎語法
1 this this代表當前正在執行的物件 function fn fn window const obj new fn fn.call 2 箭頭函式 1 箭頭函式的this是在定義的時候就固定不變了 2 箭頭函式 沒有自己的this 3 箭頭函式 不能當類 構造器 使用 不可以 new 4 箭頭...
es6 基本語法
es6規定暫時性死區和let const語句不出現變數提公升,主要是為了減少執行時錯誤,防止在變數宣告前就使用這個變數,從而導致意料之外的行為。這樣的錯誤在 es5 是很常見的,現在有了這種規定,避免此類錯誤就很容易了。總之,暫時性死區的本質就是,只要一進入當前作用域,所要使用的變數就已經存在了,但...