分为三个方面来讲
- 变量声明方式的改变
- 数组、对象、函数的改变
- 新增的内置函数方法
1. 新增声明命令let和const,const优先。
let 和 const 都是块级作用域。以{}代码块作为作用域范围 只能在代码块里面使用。不存在变量提升,只能先声明再使用,否则会报错。在代码块内,在声明变量之前,该变量 都是不可用的。这在语法上,称为“暂时性死区” (temporal dead zone,简称 TDZ),在同一个代码块内,不允许重复声明。
const 声明的是一个只读常量,在声明时就需要赋值。(如果 const 的是一个对象,对象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址不能改变,而变量成员 是可以修改的。)
2. 模板字符串
用一对反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,也可以在字符串中嵌入变量,js 表达式或函数,变量、js 表达式或函数需要写在${ }中。
3. promise
用来解决异步回调地狱问题。promise状态不可逆,有三个状态:pending、fulfilled、rejected
4. 箭头函数
箭头函数没有原型,不能实现继承
箭头函数中的 this 始终指向箭头函数定义时的离 this 最近的一个函数,如果没有最近的函数就指向 window
5. 函数的默认参数
5. 对象和数组的方法
6. class和module
class用来定义类
module模块化开发,模块封装的时候遵循一个原则:高内聚低耦合
7. 解构赋值
8. 扩展运算符
9. Set数据结构
Set 数据结构,类似数组。所有的数据都是唯一的,没有重复的值。它本身是一个构造函数。