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 和迭代器的更多相关文章

  1. python迭代器、生成器、装饰器之迭代器

    迭代是Python最强大的功能之一,是访问集合元素的一种方式. 一般分为可迭代对象,迭代器,可迭代对象不一定是迭代器,但迭代器一定是可迭代对象 1.可以直接作用于for循环的数据类型 第一类:集合数据 ...

  2. ES6深入浅出_汇总贴

    H:\BaiDu\ES6深入浅出-wjw ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https:/ ...

  3. 15.python的for循环与迭代器、生成器

    在前面学习讲完while循环之后,现在终于要将for循环这个坑填上了.之所以拖到现在是因为for循环对前面讲过的序列.字典.集合都是有效的,讲完前面的内容再来讲for循环会更加容易上手. 首先,for ...

  4. Python: 迭代器与生成器小结

    迭代器与生成器的区别: 1. 迭代器由Class对象创建. 生成器由包含yield表达的Function对象或者Generator Expression创建. 2. 迭代器的原理: (1)由Itera ...

  5. Python编程四大神兽:迭代器、生成器、闭包和装饰器

    生成器 生成器是生成一个值的特殊函数,它具有这样一个特点:第一次执行该函数时,先从头按顺序执行,在碰到yield关键字时该函数会暂停执行该函数后续的代码,并且返回一个值:在下一次调用该函数执行时,程序 ...

  6. python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器

    1. is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同 == 比较的是两个对象的内容是否相等 2. with语句时用于对try except finally 的优 ...

  7. Python核心编程的四大神兽:迭代器、生成器、闭包以及装饰器

      生成器 生成器是生成一个值的特殊函数,它具有这样的特点:第一次执行该函数时,先从头按顺序执行,在碰到yield关键字时该函数会暂停执行该函数后续的代码,并且返回一个值:在下一次调用该函数执行时,程 ...

  8. 一文搞懂Python迭代器和生成器

    很多童鞋搞不懂python迭代器和生成器到底是什么?它们之间又有什么样的关系? 这篇文章就是要用最简单的方式让你理解Python迭代器和生成器! 1.迭代器和迭代过程 维基百科解释道: 在Python ...

  9. Python3 迭代器与生成器 - 学习笔记

    可迭代对象(Iterable) 迭代器(Iterator) 定义 迭代器和可迭代对象的区别 创建一个迭代器 创建一个迭代器类 使用内置iter()函数 StopIteration异常 生成器(gene ...

随机推荐

  1. destoon模板存放调取规则

    一.模板存放及调用规则      模板存放于系统 template 目录,template 目录下的一个目录例如 template/default/ 即为一套模板 模板文件以 .htm 为扩展名,可直 ...

  2. MessageBox页面消息弹出框类

    MessageBox页面消息弹出框类: public class MessageBox { /// <summary> /// 自定义弹出窗口内容,不跳转 /// </summary ...

  3. js弹窗输入

    <html> <head> <title>js输入对话框</title> </head> <body> <script l ...

  4. 多线程实现的方式一继承Thread

    实现方法一:继承Thread类 package thread; /** * @function 多线程继承Thread类 * @author hj */ public class Threads ex ...

  5. 模拟赛20181101 雅礼 Wearry 施工 蔬菜 联盟

    % Day2 Solution % Wearry % Stay determined! 施工    记 fif_{i}fi​ 表示考虑前 iii 个建筑, 并且第 iii 个建筑的高度不变的答案, 每 ...

  6. 2019-2020-1 20199302《Linux内核原理与分析》第三周作业

    云班课学习内容 一.C语言中嵌入汇编代码 1.内嵌汇编语法 (1)C语言中嵌入汇编代码的写法: asm( 汇编语句模板: 输出部分: 输入部分: 破坏描述部分): 说明:输出部分和输入部分对应着C语言 ...

  7. SIGAI机器学习第二十一集 AdaBoost算法2

    讲授Boosting算法的原理,AdaBoost算法的基本概念,训练算法,与随机森林的比较,训练误差分析,广义加法模型,指数损失函数,训练算法的推导,弱分类器的选择,样本权重削减,实际应用. 大纲: ...

  8. 像素迷踪,当Unity的Frame Debugger力不从心时

    http://www.manew.com/thread-92382-1-1.html 从版本5开始,Unity包含了一个全新的可视化帧调试工具,Frame Debugger.该工具能帮你解决很多图形方 ...

  9. LOJ2269. 「SDOI2017」切树游戏 [FWT,动态DP]

    LOJ 思路 显然是要DP的.设\(dp_{u,i}\)表示\(u\)子树内一个包含\(u\)的连通块异或出\(i\)的方案数,发现转移可以用FWT优化,写成生成函数就是这样的: \[ dp_{u}= ...

  10. linux 查看带宽瓶颈

    1.首先要确定网卡带宽是多少(单位是Mbit/s) ethtool eth1 | grep Speed 2.确定当前带宽使用情况 使用 nload 工具,如果没有可以yum install nload ...