整理的是高频知识点,不足之处还请指出哈,后续会完善
新特性
- let,const申明
- 箭头函数
- 模板字符串
- 解构赋值
- 拓展运算符
- set()、map()
- async、await
- promise
- import导入、export导出
- for of、for in
let、const、var三者区别
- let声明变量,const声明常量;
- let、const都有块级作用域,而var没有;
- var存在变量提升,而let、const不会;
- const与let最大不同在于,const声明后无法再次赋值
箭头函数与普通函数区别
- 箭头函数是匿名函数,不能作为构造函数,不能使用new;
- 箭头函数不绑定this,会捕获其上下文this,作为自己的this;
- 箭头函数没有原型属性
set、map的区别
set用于数据重组,map用于数据储存
set:
- 成员不能重复
- 只有键值没有键名,类似数组
- 可以遍历,方法有add, delete、has等
map:
- 健值对的集合,类似集合
- 可以遍历,用来储存、查找
Class的理解
class可以看作是一个语法糖,只是让对象原型的写法更清晰,更像面向对象编程语法;
class不存在变量提升,需先定义再使用
Promise的理解
Promise本身是同步的立即执行函数,行resolve或者reject的时候, 此时是异步操作, 会先执行then/catch等,当主栈完成后,才会执行resolve/reject中存放的方法,打印结果是一个Promise实例。
Async/Await的理解
Async函数返回一个 Promise 对象,当函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再执行函数体内后面的语句。
Await含义为等待,也就是 async 函数需要等待await后的函数执行完成并且有了返回结果之后,才能继续执行下面的代码
forEach、for in、for of三者区别
forEach更多用来遍历数组
for in 常用来遍历对象或 json,循环出的是 key
for of 数组对象都可以遍历,循环出的是 value