文章目录
-
1.ES6 rest 参数
-
2. ES6 扩展运算符
-
- 2.1 ES6 简介
-
2.2 应用
-
3. ES6 Symbol 数据类型
-
- 3.1 Symbol两种创建方式
-
3.2 Symbol注意事项 7个数据类型
-
3.3 给对象,添加Symbol的两种属性
-
4. Symbol 内置属性
-
- 4.1 hasInstance 与 instanceof
-
4.2 isConcatSpreadable 与 concat
-
4.3 其他Symbol的内置属性
-
5. 迭代器
-
6. 迭代器自定义遍历对象
-
7. ES6 生成器(异步编程)
-
- 7.1 生成器 简介
-
7.2 生成器 yield
-
7.3 生成器函数参数
-
7.4 生成器的使用
==========================================================================
ES6 引入rest参数,用来获取函数的实参,用来代替arguments。
arguments和rest参数,得到的结果不同,前者是对象,后者是数组。
见下图结果:
注意:
rest参数必须要放到参数最后。
==========================================================================
[ … ] 扩展运算符能将数组转换为逗号分隔的参数序列。
扩展运算法和rest参数,不一样,扩展运算符常用的就是将一个数组内容,有顺序的传入到一个函数方法中。
1. 数组合并
2. 数组克隆
3. 将伪数组转化为真正的数组
================================================================================
在ES6中,Symbol表示独一无二的值,也是ES6推出的第七种数据类型。Symbol和字符串不同!
1. 直接Symbol() 来创建Symbol对象。这是通过调用函数来创建Symbol对象。
这里的两个张三是不同的!
2. 使用Symbol.for方法来创建Symbol对象。和上面不同这是通过函数对象来创建Symbol。
而使用Symbol.for创建的相同值,是一样的!!
注意:
Symbol定义的变量不能与其他数据进行运算。
7个数据类型:
记忆小技巧:
USONB (you are so niubility)
**u : undefined
s : String Symbol
o : Object
n : null number
b : boolean**
方式一:
向对象中添加另一个对象的属性值为Symbol的方法。
方式二:
直接使用[]添加Symbol的对象属性。
============================================================================
instanceof的用途是判断一个对象是否在某个对象原型链上。或者说判断一个对象是某个对象的实例。
当其他对象使用instanceof运算符,判断是否为对象的实例时,会调用这个方法。
例如:
4.2 isConcatSpreadable 与 concat
对象的Symbol.isConcatSpreadable属性等于的是一个布尔值,表示该对象用于concat(Array.prototype.concat())时,是否展开。
这些属性都是Symbol的内置属性,而他们的整体来作为对象的属性去设置,来改变对象在特定场景下面的表现。
====================================================================
迭代器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。 任何数据结构只要部署了Iterator接口,就可以完成遍历操作。
在ES6中,一个新的遍历命令for … of循环,iterator接口主要供for … of 来使用。
以下的数据都可以使用for … of :
注意:
**for in 遍历的是键名。
for of 遍历的是键值。**
可以自己打印一下,查看Iterator的接口:
Iterator (迭代器)的工作原理:
关键是看next指针,我们可以打印第一个next指针看看。
===========================================================================
通过使用迭代器自定义遍历数据,自定义就是按照自己的想法来遍历对象或者对象内的数据。
例如:
==============================================================================
生成器其实就是一个特殊的函数,主要作用就是异步编程。
生成器,加上“ * ” 号。
调用next()方法来打印下面案例:
yield可以算作是函数代码的分隔符。
也可以打印i.next()方法,来查看对象value和done的值。如下:
生成器的参数大体分为两种,正常的携带参数 和 next方法传入实参。
使用生成器来依次那个调用相应函数的案例,来表现异步编程思想。
案例一:简单的异步
案例二:next携带参数的异步
最后
小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你需要这些资料,⬅专栏获取
v=“X-UA-Compatible” content=“IE=edge”>
最后
小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-pxgVsbAe-1719507407974)]
[外链图片转存中…(img-84ExMYGh-1719507407976)]
[外链图片转存中…(img-MCVKAzp5-1719507407977)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你需要这些资料,⬅专栏获取