ES6 新增特性
1. 关键字 let、const
- let 声明变量,const 声明常量,常量的值设置之后无法更改。
- let、const 声明的变量存在块级作用域,变量只在作用域内生效。
- let、const 声明的变量不具备变量提升的特性
2. 箭头函数
- 不需要 function 关键字声明,无法与 new 关键字一起使用
- 没有自己的 this,this 由其上下文决定
- 函数中无法使用 arguments 接收参数
- 当仅有一个参数时,可以省略(),当函数返回有且只有一个表达式时,可以省略{}和 return
3. 函数默认参数
- 函数中的参数可以设置默认值,当函数调用时没有传入该参数,则会使用默认值
4. 模板字符串
- 可以在字符串中插入变量,用${}来使用
- 可以换行
5. 扩展运算符
- 可以将对象或数组展开,用…来使用
6. 解构赋值
- 可以快速的从对象或数组中提取值并赋给变量
7. 类和继承
- 可以使用 class 关键字对构造函数进行声明
8. promise
- promise 是一种新的异步编程方法,可以更方便的处理异步操作,对于解决回调地狱问题非常好用
- async…await 可以使用同步代码的书写方式来书写异步代码
9. 新的对象和方法
- 新的对象:Map 对象和 Set 对象
- Map 对象
- 可以使用任意数据类型作为对象的键
- 使用 Map 构造函数接收一个二维数组来创建
- Set 对象
- 内部的值存在唯一性,不允许存在相同元素
- 使用 Set 构造函数接收一个数组来创建
- 可以用来数组去重
- assign 浅拷贝对象
- is 判断两个值是否绝对相等
- 功能等同于===,判断两个值是否绝对相等
- for…in:遍历对象
10. 数组新方法
- find 查找数组中符合条件的第一个元素,返回该元素或 undefined,不改变原数组
- findIndex 查找数组中符合条件的第一个元素的索引,返回目标元素的下标或-1,不改变原数组
- includes 数组中是否包含该元素,返回 true 或 false,不改变原数组
- of 使用当前参数创建一个新数组,返回新数组
- from 将可迭代对象转化为新数组,返回新数组
- for…of 遍历数组
11. 基本数据类型
- 表示一个独一无二的值,在外部是无法被引用的,是一个私有成员
12. 模块化
- 导入模块
import ‘模块名称’ from ‘路径’; import ‘路径’;
- 导出模块
export var name = "ren"; // 在同一个模块中,export default 只允许向外暴露一次成员 export default var age = 12;