ES6+知识点

本文详细介绍了ES6的关键特性,包括let和const命令解决的var问题,模板字符串的使用,函数默认值、剩余参数、扩展运算符和箭头函数的特性,解构赋值的应用,对象扩展功能,Symbol类型,Set和Map数据结构,数组的扩展方法,迭代器和生成器的概念及用法,Promise的基本使用,async/await的异步处理,以及class和ES6的模块化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.ES6介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vfl9vOnD-1673095717785)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211140848528.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VTIgyw3U-1673095717786)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211141220640.png)]

2.let和const命令

let声明没有变量提升,在块级作用域内生效,不能重复声明

const同let并且一旦声明不可以修改值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQ2f4UxZ-1673095717786)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211142540133.png)]

let解决var的遗留问题

1.解决for循环问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ELhkhegF-1673095717786)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211142800236.png)]

你们可以理解在for循环之前有一句var i (变量提升引起的);循环结束之后i=10了 所以打印i就是10

2.解决全局变量污染问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-smg7UObE-1673095717787)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211142919745.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nWk1wtRn-1673095717787)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211143229394.png)]

3.模板字符串

因为原来的拼接字符串太难认别了,书写了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ujv3CKJ-1673095717787)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211143857888.png)]

ES6模板字符串

反引号``

变量用 ${变量名}

let htmlStr = `字符串内容`

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Av4DvYp4-1673095717788)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211144431273.png)]

4.ES6函数

函数默认值

1.函数默认值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qQbHhLyo-1673095717788)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211145752108.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ay3H48xp-1673095717788)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211145832325.png)]

默认值也可以是个函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vt8GDHyh-1673095717788)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211150112270.png)]

剩余参数

剩余参数解决了arguments的问题

剩余参数就是把实参融合在一起,方便调用,替代了arguments

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZE9rKICb-1673095717788)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211153531405.png)]

<body>
    <script>
        function print(...keys) {
            console.log(keys[0]);
            console.log(keys[1]);
            console.log(keys[2]);

        }
        print(10, 11, 12);
    </script>
</body>

扩展运算符

扩展运算符就是将一个数组分割,将分离项作为实参

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1DUsBVtb-1673095717789)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211160100783.png)]

箭头函数

=> 箭头函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMNS3ZHb-1673095717789)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211160949940.png)]

		let print2 = (num1, num2) => {
            console.log(num1 + num2);
        }
        print2(10, 20);

闭包函数

就是立即执行函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2YWdvlm-1673095717789)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211161606407.png)]

箭头函数this指向

箭头函数导致this总是指向函数定义生效时所在的对象

箭头函数没有明确的this指向,大家只要知道箭头函数指向他的父级就行,没有父级就是默认指向window全局

箭头函数本身没有this指向,而是去查找它的父级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hB9RxwYE-1673095717789)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211162151877.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VYrbjGBF-1673095717790)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211163837778.png)]

箭头函数注意事项

1.箭头函数内部没有arguments

2.箭头函数不能用new实例化对象,和function不一样,就是一个语法糖

5.解构赋值

就是方便从对象里取属性

let{属性名1,属性名2..} = 对象名;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rJnJviHo-1673095717790)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211164629641.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rh0qeNxa-1673095717790)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211164724151.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M2zrp9wL-1673095717790)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211164843626.png)]

6.对象扩展功能

同名属性直接写

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OY94P3ek-1673095717790)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211165848481.png)]

追加属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWSBI8Qh-1673095717791)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211165741429.png)]

属性改名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EL20L1E8-1673095717791)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211170004214.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4POOCzqn-1673095717791)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211170156752.png)]

上图输出abc:123 fa

对象的方法

is() === 比较两个值是否严格相等

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bd2uMgdS-1673095717791)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211170632274.png)]

assign() 对象的合并,是浅拷贝

Object.assign(target,obj1,obj2....) 将obj1,obj2...合并到target

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DshDBHpa-1673095717791)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211171011959.png)]

7.Symbol类型(了解)

symbol 声明变量表示独一无二的值

实际开发中很少用

要用中括号调用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lYTM5eWV-1673095717792)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211171829385.png)]

8.Set集合数据类型

添加的值没有重复的数组

set 就是一个数组,只有值,没有键,且值不能重复(键和值是相等的)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiDz6chS-1673095717792)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211172412715.png)]

通过扩展运算符将Set转换为数组

注意Set会去除重复元素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BRbpG7TR-1673095717792)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211172842345.png)]

9.Map数据类型

set设置元素,get获取元素

实际开发没什么用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OMlwjkbV-1673095717792)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211173114477.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kxPOKtF3-1673095717792)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211173414115.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AoDNw1ou-1673095717793)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221211173638475.png)]

10.数组扩展方法

1.将伪数组转换为数组

from() 将伪数组转换为真正数组

…扩展运算符也可以将伪数组转换为真正数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qOZcYsrN-1673095717793)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212133352101.png)]

2.将一组任意类型转换为数组

of() 将任意类型转换为数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9iTXbDd2-1673095717793)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212133816080.png)]

3.数组复制元素到其它位置(了解)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hhpyD5LU-1673095717793)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212134443029.png)]

4.find 和findIndex

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-01HfMhU2-1673095717793)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212134636880.png)]

5.entries() keys() values()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0RIEzvGI-1673095717794)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212135215646.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l69UdtZU-1673095717794)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212135505735.png)]

6.includes() 查询是否有某个值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NBHCGf6Z-1673095717794)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212135757639.png)]

11.迭代器Iterator 和生成器 Generator

1.迭代器Iterator

通过Symbol.iterator创建迭代器,通过next()获取下一个值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HohuBwsr-1673095717794)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212140755362.png)]

2.生成器 Generator

生成器的函数类似于断点调试函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u0tiaVm9-1673095717794)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212141527590.png)]

next()一次就卡在下一次yield上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D0QtHW1a-1673095717795)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212141619869.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8dd4SfDj-1673095717795)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212141830157.png)]

3.Generator函数赋值

传入的实参将作为上一个 yield的返回值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x1Ma0ab6-1673095717795)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212142545443.png)]

使用场景:为不具备iterator对象提供遍历

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8gBEYF0R-1673095717795)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212143536507.png)]

12.Promise基本使用

Promise相当于一个容器,保存着未来才会结束的事件(异步操作)的一个结果

Promise(承诺)对象的状态不受外接影响

Promise处理异步操作三个状态 .then()调用成功后干什么 .catch() 调用失败后干什么[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sqHTAkOm-1673095717795)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212153010002.png)]

Promise先等待后台处理,成功了(resolved),就返回数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pN5G3SjZ-1673095717796)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212154941372.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bNuHCOsZ-1673095717796)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212155331259.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yQTaFTUW-1673095717796)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212161130852.png)]

resolve() 将任何对象转换为Promise对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Ggewlee-1673095717796)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212160122705.png)]

all()就是一起做的意思

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jlg7DXLA-1673095717796)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212160238279.png)]

race() 某个异步请求设置超时时间,并且在超时后进行操作

就是比赛是吧,谁先改变状态,整个就变成谁的状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-04ro4PBI-1673095717797)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212160853654.png)]

13.async和await(常用)

async使得异步操作更方便

async简单说就是用同步的代码做异步的事,正常情况下异步时间肯定不同,它就是等所有的异步做完了才返回结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RQ9hUuf9-1673095717797)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212162033196.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gK7ytJA4-1673095717797)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212162811472.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HzI4ggll-1673095717797)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212162901125.png)]

14.class类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ffWBMLLr-1673095717797)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212164316949.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YkAyhwLQ-1673095717797)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212164413256.png)]

2.类的继承

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aoa0dhQz-1673095717798)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212165318560.png)]

15.ES6模块化

模块功能主要由两个命令构成即export和import

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIkPj00K-1673095717798)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212170424634.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xk7UvLGT-1673095717798)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212170947559.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fSFUtI8w-1673095717798)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212170910637.png)]

17797)]

14.class类

[外链图片转存中…(img-ffWBMLLr-1673095717797)]

[外链图片转存中…(img-YkAyhwLQ-1673095717797)]

2.类的继承

[外链图片转存中…(img-aoa0dhQz-1673095717798)]

15.ES6模块化

模块功能主要由两个命令构成即export和import

[外链图片转存中…(img-dIkPj00K-1673095717798)]

[外链图片转存中…(img-Xk7UvLGT-1673095717798)]

[外链图片转存中…(img-fSFUtI8w-1673095717798)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mfdb3wvH-1673095717798)(C:\Users\xxxu\AppData\Roaming\Typora\typora-user-images\image-20221212171125507.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值