一、ES6新特性
1、let 关键字
1) 不允许重复声明
2) 块级作用域
3) 不存在变量提升
4) 不影响作用域链
2、const 关键字
const 关键字用来声明常量,const 声明有以下特点 1) 声明必须赋初始值 2) 标识符一般为大写 3) 不允许重复声明 4) 值不允许修改 5) 块儿级作用
3、变量的解构赋值
4、模板字符串
5、箭头函数
1) 如果形参只有一个,则小括号可以省略 2) 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的 执行结果 3) 箭头函数 this 指向声明时所在作用域下 this 的值 4) 箭头函数不能作为构造函数实例化 5) 不能使用 arguments
6、Symbol
1) Symbol 的值是唯一的,用来解决命名冲突的问题 2) Symbol 值不能与其他数据进行运算 3) Symbol 定义 的 对象属 性 不能 使 用 for…in 循 环遍 历 ,但 是可 以 使 用 Reflect.ownKeys 来获取对象的所有键名
7、迭代器
a) 创建一个指针对象,指向当前数据结构的起始位置 b) 第一次调用对象的 next 方法,指针自动指向数据结构的第一个成员 c) 接下来不断调用 next 方法,指针一直往后移动,直到指向最后一个成员 d) 每调用 next 方法返回一个包含 value 和 done 属性的对象
8、生成器
1) * 的位置没有限制
2) 生成器函数返回的结果是迭代器对象,调用迭代器对象的 next 方法可以得到 yield 语句后的值
3) yield 相当于函数的暂停标记,也可以认为是函数的分隔符,每调用一次 next 方法,执行一段代码
4) next 方法可以传递实参,作为 yield 语句的返回值
9、Set
10、Map
1) size 返回 Map 的元素个数 2) set 增加一个新元素,返回当前 Map 3) get 返回键名对象的键值 4) has 检测 Map 中是否包含某个元素,返回 boolean 值 5) clear 清空集合,返回 undefined
11、class 类
1) class 声明类 2) constructor 定义构造函数初始化 3) extends 继承父类 4) super 调用父级构造方法 5) static 定义静态方法和属性 6) 父类方法可以重写
12、模块化
模块功能主要由两个命令构成:export 和 import。
1)export 命令用于规定模块的对外接口
2) import 命令用于输入其他模块提供的功能