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)]