ES6深入浅出-2 新版函数:4 迭代器与生成器-4.总结

yield的值就是外面调用next得到的值

ES6给的新的语法,如果你给任何一个对象添加一个Symbol.interator的key,同时它的值是一个生成器。
下面选中的就是生成器。生成返回的东西是迭代。那么这个对象就可以迭代,就叫做可迭代对象。

现在JS有三种for语法。
1:叫做for循环
2:遍历一个对象,
3:迭代

结束

原文地址:https://www.cnblogs.com/wangjunwei/p/11816210.html

时间: 2024-11-05 22:49:02

ES6深入浅出-2 新版函数:4 迭代器与生成器-4.总结的相关文章

ES6深入浅出-2 新版函数:4 迭代器与生成器-3.生成器 & for...of

迭代器平时用的很少.但是如果你是写框架的,你会经常用到迭代器. 生成器是专门用来做迭代器的东西 发布器是要产生一个叫做next的对象,如果你要产生这种对象.就可以使用ES6新出的语法. ES6的新语法 星号放在哪里都可以,甚至打空格可以了. 这样写也行 这样写也行 while(true)是一个死循环.这是一个ES6的语法糖 function*是什么 yield是什么鬼?ES6难理解,就是你永远用不到的东西,在这个基础之上又加了一个你永远用不到的东西. 可以移植运行a.next()理论上不会结束.

ES6深入浅出-2 新版函数:4 迭代器与生成器-1.字面量增强

今天的内容 字面量literal 写出来就是它的值 例如字符串hello.这就是自变量. 一个空对象,也是自变量 写出来就是代表它写出来的那个意思就是自变量. 与其相反的就是构造出来的.例如下面的new Object()就不是自变量. 非自变量就是构造出来的量 二进制 以前的二进制是怎么写的呢 以前的二进制基本没有什么用 十进制没有十 八进制没有八 二进制,是以0b开头的 es6新语法,以0b开头的是二进制.0o开头的是八进制 在es5里面0777代表是八进制. 新版的语法知识更好的理解而已.

ES6深入浅出-2 新版函数:箭头函数 2 视频-1.视频 箭头函数

ES3里面的写法 匿名函数是用不了的 还是需要给他赋值 选中的这一部分叫做匿名函数 等于号叫做赋值 let xxx叫做声明 所以说这个地方是三个语法,首先声明一个匿名函数,然后声明一个xxx变量,最后把这个匿名函数赋值给这个变量xxx es6箭头函数 箭头函数只能做赋值,不能做声明 这是一个标准的箭头函数 写法2,只有一个参数 如果只有一个函数,可以不用写括号 调用一下做测试 写法3,函数体只有一句话的情况 如果函数体只有一句话,那么是可以不写花括号的. 假设我们的函数体只有return p1+

ES6深入浅出-2 新版函数:箭头函数 2 视频-2.视频 箭头函数杂谈

杂谈coffeescript 箭头函数抄的是谁? coffeescript 双箭头的形式 箭头函数简洁的语法 数组内每一个值都平方一下 Map的写法 箭头函数的写法 平方后,每一个值再加1 number变量改成用n,更简化 瘦箭头 瘦箭头其实就是function 判断response里面的对象是否存在的情况 coffescript里面的解决方法,直接用问号解决了. vue中说不要使用箭头函数? 因为vue中依赖this 用到了箭头函数就别用this function()简写的写法,onClick

python函数:迭代器和生成器

python函数:迭代器和生成器 迭代器和生成器是函数中的一大重点,务必掌握,何为迭代?何为迭代器? 预习: 处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕(使用生成器) 一.迭代器 for i in 50:     print(i) #运行结果: # Traceback (most recent call last): #   File "G:/python/python代码/八月/day2 迭代器生成器/3迭代器.py", line 8, in &

函数4—迭代器与生成器

基础概念迭代器: 为什么: 提供了一种不依赖于索引的取值方式,如字典,集合,文件等没有索引的类型需要循环取出元素 迭代器是惰性计算,更节省内存,迭代器在内存中只是一个内存地址,一次只取一个值 缺点:永远无法获取迭代器的长度,使用不如列表索引取值灵活 一次性的,只能往后取值 可迭代的:对象本身有__iter__方法 i = iter(n) or i = n.__iter__() i 为n的迭代器 next(i) or i.__next__() 利用迭代器输出内容,一次输出一个 生成器: 定义: 函

重修课程day12(函数之迭代器和生成器)

一  迭代器 集合的目的:去重,关系运算. # a={1,2,3,4,5,6,7} # b={41,52,5,26,7,4,2,9,} # print(a-b) isinstance:判断数据的类型,还可以判断是否可迭代. iterable:形容词  可迭代的:from collections import Iterable:用来检测一个对象是否可以迭代. # from collections import Iterable # print(isinstance('fadda',Iterable

Learn Python—函数(迭代器、生成器)

迭代器iterator 可迭代协议-只要含有__iter__方法的,都是可迭代的iterable 迭代器协议-内部含有__next__方法和__iter__方法的就是迭代器 只要能被for循环的数据类型,就一定拥有__iter__方法,for循环其实就是在使用迭代器 只要是迭代器就一定可以迭代 可迭代对象.__iter__() == 迭代器 迭代器中的__next__()方法可以一个一个的获取值 迭代器对象可以使用常规for语句进行遍历: list=[1,2,3,4] it = iter(lis

ES6深入浅出-1 新版变量声明:let 和 const-2.视频 let和const

以前的var方式声明不好用 a=1回声明一个全局变量, 输出了1 说明a=1确实声明了一个全局变量. 但是你把放在其他的地方,就不是声明全局变量了. 如果外面有个全局变量a 那么函数里面就是给a赋值 有两层函数的时候,直接使用的是局部变量a,也就是fn函数里面的a 如果当前没有a就声明一个全局变量a.如果有a就利用这个a.下面当前就是有a的 这样用的就是最外面的var a 如果外面也没有,这时候才会去声明一个全局变量 所以a=1会声明一个全局变量是错的,只有在没有a这个变量的情况下才会隐式的去声