ES6深入浅出-4 迭代器与生成器-2.Symbol 和迭代器
symbol
https://zhuanlan.zhihu.com/p/22652486
Es5中的数据类型,所有的复杂类型都是对象类型。

ES6里面增加了symbol类型,用处不多。

https://zhuanlan.zhihu.com/p/22652486
这段代码实际上不优化也完全没有问题

也可以这么写,这样写不容易出错。

比如说有人把单词拼错了那么就什么也没有创建。

这样写直接就报错

以上两种写法哪一种好,就看哪一种写法更不容易出错。字符串的形式,如果拼错了,不容易监测出来。
神族、人族、虫族后面的值换成123 也是可以的。得出的结论是:神族、人族、虫族后面的值一点意思都没有。 根本就没有必要给它一个值。
只要神族、人族、虫族 不相等就可以了。所以我们就没必要想它的值是多少。

神族、人族、虫族都赋值为一个Symbol类型



Symbol上就是创造出一个独一无二的值。Symbol就是一个标志。可以理解为人族的胎记,这是独一无二的

迭代器
这是遍历的意思。

迭代。相当于生了一次级。
我们并不知道zhihu有多少个版本。zhihu甚至自己都不知道自己有多少个版本
迭代是有没有下一个版本,如果有你就给我,没有就结束

每调用一个发布的方法,version就+1,每次调用就会返回下一个版本。

调用一次发布器方法,用a接收,请问a的值是什么?
a是一个对象,这个对象有两个属性,分别是next和done。这是迭代的第一步。
next是下一次版本的入口,done就是我有没有下一个版本。

next和done现在都是unfined

开始改造
把next换成一个函数

现在只有一个next

如果我现在调用这个a.next() 什么也没有返回,因为这个函数现在什么也没有做。

让函数做点东西
在函数里面再返回一个函数

如果运行a.next() 。它是一个对象。

函数对象,函数对象。

每次调用next的时候_value就会加1作为value返回给你

调用a.next最终返回value为1的对象。

再调用一次a.next方法,value的值变成了2

这就是一个差一点就做完的迭代器

多返回一个done
最大值为10.加到10了 就停止迭代。done为true 否则done为false



没有被阻止,还是继续加了1

大于最大值就抛出错误。


迭代器的概念。


讲迭代器为了下面的生成器。
ES6深入浅出-4 迭代器与生成器-2.Symbol 和迭代器的更多相关文章
- python迭代器、生成器、装饰器之迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式. 一般分为可迭代对象,迭代器,可迭代对象不一定是迭代器,但迭代器一定是可迭代对象 1.可以直接作用于for循环的数据类型 第一类:集合数据 ...
- ES6深入浅出_汇总贴
H:\BaiDu\ES6深入浅出-wjw ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https:/ ...
- 15.python的for循环与迭代器、生成器
在前面学习讲完while循环之后,现在终于要将for循环这个坑填上了.之所以拖到现在是因为for循环对前面讲过的序列.字典.集合都是有效的,讲完前面的内容再来讲for循环会更加容易上手. 首先,for ...
- Python: 迭代器与生成器小结
迭代器与生成器的区别: 1. 迭代器由Class对象创建. 生成器由包含yield表达的Function对象或者Generator Expression创建. 2. 迭代器的原理: (1)由Itera ...
- Python编程四大神兽:迭代器、生成器、闭包和装饰器
生成器 生成器是生成一个值的特殊函数,它具有这样一个特点:第一次执行该函数时,先从头按顺序执行,在碰到yield关键字时该函数会暂停执行该函数后续的代码,并且返回一个值:在下一次调用该函数执行时,程序 ...
- python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器
1. is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同 == 比较的是两个对象的内容是否相等 2. with语句时用于对try except finally 的优 ...
- Python核心编程的四大神兽:迭代器、生成器、闭包以及装饰器
生成器 生成器是生成一个值的特殊函数,它具有这样的特点:第一次执行该函数时,先从头按顺序执行,在碰到yield关键字时该函数会暂停执行该函数后续的代码,并且返回一个值:在下一次调用该函数执行时,程 ...
- 一文搞懂Python迭代器和生成器
很多童鞋搞不懂python迭代器和生成器到底是什么?它们之间又有什么样的关系? 这篇文章就是要用最简单的方式让你理解Python迭代器和生成器! 1.迭代器和迭代过程 维基百科解释道: 在Python ...
- Python3 迭代器与生成器 - 学习笔记
可迭代对象(Iterable) 迭代器(Iterator) 定义 迭代器和可迭代对象的区别 创建一个迭代器 创建一个迭代器类 使用内置iter()函数 StopIteration异常 生成器(gene ...
随机推荐
- css Grid布局
CSS Grid 布局完全指南(图解 Grid 详细教程)https://www.html.cn/archives/8510#prop-grid-gap 5分钟学会 CSS Grid 布局https: ...
- Union-Find(并查集): Quick union算法
Quick union算法 Quick union: Java implementation Quick union 性能分析 在最坏的情况下,quick-union的find root操作cost( ...
- js弹窗输入
<html> <head> <title>js输入对话框</title> </head> <body> <script l ...
- 从GITHUB下载源码
从昨天开始就想着从GitHub上下载一个开源的Vue的实战项目,希望能从中学习更多的Vue的实用内容,结果搞了半天好不容易下载了,不知道怎么弄.然而,今天终于成功了,激动地我赶紧来记录一下. 如何从G ...
- Effective C++读书笔记(转)
第一部分 让自己习惯C++ 条款01:视C++为一个语言联邦 一.要点 ■ c++高效编程守则视状况而变化,取决于你使用c++的哪一部分. 二.扩展 将c++视为一个由相关语言组成的联邦而非单一语言会 ...
- 织梦个人空间中调用ip,会员类型,邮箱,金币,会员积分
织梦个人空间中调用.用户昵称,最后登录,会员等级 ,会员头衔,会员积分,空间访问,邮箱地址 ,金币数量,会员组的有效期天数 ,升级会员组的时间 ,用户的等级,用户的性别 ,会员的类型,ip 第一步确定 ...
- UVA 11468 Substring (记忆化搜索 + AC自动鸡)
传送门 题意: 给你K个模式串, 然后,再给你 n 个字符, 和它们出现的概率 p[ i ], 模式串肯定由给定的字符组成. 且所有字符,要么是数字,要么是大小写字母. 问你生成一个长度为L的串,不包 ...
- 数据库访问优化之四:减少数据库服务器CPU运算
1.使用绑定变量 绑定变量是指SQL中对变化的值采用变量参数的形式提交,而不是在SQL中直接拼写对应的值. 非绑定变量写法:Select * from employee where id=123456 ...
- 引领开发工具近40年的程序员Anders Hejlsberg
有位神级程序员在近40年中一直创造引领潮流的开发工具(Turbo Pascal/Delphi/C#/TypeScript),他就是Anders Hejlsberg. 一. Anders并没有大学文凭, ...
- 洛谷 P3979 遥远的国度
题目描述 修改某条路径上的值以及询问子树的最小值都最树剖的基础操作,那么如何实现换根呢? 考虑一下三种情况: 1.rot=询问的子树x,答案就是整棵树的最小值 2.rot在x的子树里,只有rot到x这 ...