ES6 生成器(Generator)

  • JavaScript的Generator只有调用next是才执行当前yield的代码

  • yield只能出现的Generator函数里面,不然会报错

  • yield表达式如果用在另一个表达式之中,必须放在圆括号里面console.log('Hello' + (yield 123))

  • next方法可以带一个参数,该参数就会被当作上一个yield表达式的返回值

  • for…of循环可以自动遍历 Generator 函数运行时生成的Iterator对象,且此时不再需要调用next方法

斐波那契数列

function* fn() {

let [prev, curr] = [0, 1];

while(true){

yield curr;

[prev, curr] = [curr, prev + curr];

}

};

for (let n of fn()) {

if (n > 1000) break;

console.log(n);

}

回到顶部 目录

其他操作


  • Generator.prototype.throw([new Error()]):在函数体外抛出错误,然后在Generator函数体内(try…catch)捕获

  • Generator.prototype.return(value):返回给定的值,并且终结遍历Generator函数

  • 让Generator函数恢复执行,并且使用不同的语句替换yield表达式:

  • next()是将yield表达式替换成一个值

  • throw()是将yield表达式替换成一个throw语句

  • return()是将yield表达式替换成一个return语句

  • yield* 表达式:在一个Generator函数里面执行另一个Generator函数

对象中的Generator函数


let obj = {

  • Generator1(){

yield 1;

},

Generator2 : function* (){

yield 2;

}

}

Generator函数实例化对象是无法使用this的,可以通过call来实现:

function* F() {

this.a = 1;

yield this.b = 2;

yield this.c = 3;

}

var f = F.call(F.prototype);

f.next(); // Object {value: 2, done: false}

f.next(); // Object {value: 3, done: false}

f.next(); // Object {value: undefined, done: true}

f.a // 1

f.b // 2

f.c // 3

还可以将Generator函数调用方式改为构造函数:

function* gen() {

this.a = 1;

yield this.b = 2;

yield this.c = 3;

}

function F() {

return gen.call(gen.prototype);

}

var f = new F();

f.next(); // Object {value: 2, done: false}

f.next(); // Object {value: 3, done: false}

f.next(); // Object {value: undefined, done: true}

f.a // 1

f.b // 2

f.c // 3
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取

前端路线图

秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取

[外链图片转存中…(img-FZJwKsVn-1713484091639)]

vue.js的36个技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值