js generator資料型別

2022-04-02 18:23:26 字數 1729 閱讀 4729

1. 概述

generator 是es6引入的新的資料型別, 看上去像乙個函式,除了使用return返回, yield可以返回多次。

generator 由function* 定義, (注意*號),

2. 例子

函式無法儲存狀態, 有時需要全域性變數來儲存數字;

2.1

'use strict';

function

next_id()

return

id;}

//測試:

varx,

pass = true

, g =next_id();

for (x = 1; x < 100; x ++) }if

(pass)

2.2 乙個無限迴圈的迭代器

function*idmaker()

var gen = idmaker(); //

"generator "

console.log(gen.next().value); //0

console.log(gen.next().value); //

1console.log(gen.next().value); //

2

2.3generator.prototype.next()

當迭代結束時, generator.next().done ===true, 結束之前 ===false

function*gen() 

var g = gen(); //

"generator "

g.next(); //

"object "

g.next(); //

"object "

g.next(); //

"object "

g.next(); //

"object "

2.4 generator.prototype.return();

return方法 返回給定的引數值,並結束迭代器

example

function*gen() 

var g =gen();

g.next();

"foo"); //

g.next(); //

注意 如果 done的值是true了, 再呼叫return,返回的值也是undefined

function* gen() 

var g =gen();

console.log(g.next());

console.log(g.return(1)); //

2.5 generator.prototype.throw()

thorw()方法, 通過丟擲乙個異常到迭代器中,來重新獲得迭代器的執行;

返回 帶有 value和done兩個屬性的object物件

function*gen()  

catch

(e)

}}var g =gen();

var a =g.next();

//var b = g.throw(new error("something went wrong"));

//"error caught!"

console.log(b.value+"::"+b.done);

資料型別基礎資料型別

資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...

資料型別 基本資料型別和引用資料型別

一.分類 1,五種簡單資料型別 基本資料型別 number,string,boolean,null,undefined,新增symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。1 undefined 宣告的變...

SQL 資料型別 MySQL 資料型別

在 mysql 中,有三種主要的型別 文字 數字和日期 時間型別。資料型別 描述char size 儲存固定長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的長度。最多 255 個字元。varchar size 儲存可變長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的最大長度。...