第 7 章迭代

文章介绍了迭代的概念,包括其拉丁文起源和在编程中的应用,特别是JavaScript中的细节。重点讲述了数组的解构、扩展操作符以及生成器的使用,如通过*符号定义生成器函数,生成器对象的next()方法和yield关键字如何控制执行流程。生成器是实现迭代的一种高效方式,可以在函数中暂停和恢复执行状态。
摘要由CSDN通过智能技术生成

迭代的英文“iteration”源自拉丁文 itero,意思是“重复”或“再来”。一遍又一遍来

最简单的迭代

 console.log(i);
}

set
设置, 集, 组, 设定, 集合, 一套
检查是否存在默认迭代器属性

console.log(str[Symbol.iterator]); // f values() { [native code] } ```
任何实现 Iterable接口的对象都有一个 Symbol.iterator 属性


// 数组解构
// 扩展操作符
let arr2 = [...arr];
console.log(arr2); // ['foo', 'bar', 'baz']

#### 生成器
生成器的形式是一个函数,函数名称前面加一个星号(*)表示它是一个生成器。只要是可以定义
函数的地方,就可以定义生成器。

// 生成器函数声明
function* generatorFn() {}
// 生成器函数表达式
let generatorFn = function* () {}

调用生成器函数会产生一个生成器对象。生成器对象一开始处于暂停执行(suspended)的状态。与
迭代器相似,生成器对象也实现了 Iterator 接口,因此具有 next()方法。调用这个方法会让生成器
开始或恢复执行

function* generatorFn() {}
const g = generatorFn();
console.log(g); // generatorFn {}
console.log(g.next); // f next() { [native code] }

#### 通过 yield 中断执行
yield 关键字可以让生成器停止和开始执行,生成器函数在遇到 yield
关键字之前会正常执行。遇到这个关键字后,执行会停止,函数作用域的状态会被保留。停止执行的生
成器函数只能通过在生成器对象上调用 next()方法来恢复执行:

function* generatorFn() {
yield;
}
let generatorObject = generatorFn();
console.log(generatorObject.next()); // { done: false, value: undefined }
console.log(generatorObject.next()); // { done: true, value: undefined }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值