深化理解js generator数据类型_.docx

上传人:啊飒飒 文档编号:11556988 上传时间:2021-08-23 格式:DOCX 页数:5 大小:12.57KB
返回 下载 相关 举报
深化理解js generator数据类型_.docx_第1页
第1页 / 共5页
深化理解js generator数据类型_.docx_第2页
第2页 / 共5页
深化理解js generator数据类型_.docx_第3页
第3页 / 共5页
深化理解js generator数据类型_.docx_第4页
第4页 / 共5页
深化理解js generator数据类型_.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《深化理解js generator数据类型_.docx》由会员分享,可在线阅读,更多相关《深化理解js generator数据类型_.docx(5页珍藏版)》请在三一文库上搜索。

1、深化理解js generator数据类型_ 下面我就为大家带来一篇深化理解js generator数据类型。我觉得挺不错的,现在就分享给大家,也给大家做个参考。 1. 概述 generator 是ES6引入的新的数据类型, 看上去像一个函数,除了用法return返回, yield可以返回多次。 generator 由function* 定义, (留意*号), 2. 例子 函数无法保存状态, 有时需要全局变量来保存数字; 2.1 use strict; function next_id() var id = 1; while(id100) yield id; id+; return id; /

2、测试: var x, pass = true, g = next_id(); for (x = 1; x 100; x +) if (g.next().value != x) pass = false; alert(测试失败!); break; if (pass) alert(测试通过!); 2.2 一个无限循环的迭代器 function* idMaker() var index = 0; while(true) yield index+; var gen = idMaker(); / Generator console.log(gen.next().value); / 0 console.l

3、og(gen.next().value); / 1 console.log(gen.next().value); / 2 2.3Generator.prototype.next() 当迭代结束时, Generator.next().done =true, 结束之前 =false function* gen() yield 1; yield 2; yield 3; var g = gen(); / Generator g.next(); / Object value: 1, done: false g.next(); / Object value: 2, done: false g.next()

4、; / Object value: 3, done: false g.next(); / Object value: undefined, done: true 2.4 Generator.prototype.return(); return方法 返回给定的参数值,并结束迭代器 example function* gen() yield 1; yield 2; yield 3; var g = gen(); g.next(); / value: 1, done: false g.return(foo); / value: foo, done: true g.next(); / value: u

5、ndefined, done: true 留意 假如 done的值是true了, 再调用return,返回的值也是undefined function* gen() yield 1; var g = gen(); console.log(g.next();/ value: 1, done: false console.log(g.next();/ value: undefined, done: true console.log(g.return(1); / value: undefined, done: true 2.5 Generator.prototype.throw() thorw()方

6、法, 通过抛出一个特别到迭代器中,来重新获得迭代器的执行; 返回 带有 value和done两个属性的object对象 function* gen() while(true) try yield 42; catch(e) console.log(Error caught!); var g = gen(); var a = g.next(); / value: 42, done: false var b = g.throw(new Error(Something went wrong); / Error caught! / value: 42, done: false console.log(a); console.log(b.value+:+b.done); 以上这篇深化理解js generator数据类型就是我分享给大家的全部内容了,盼望能给大家一个参考 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1