ES6
一、let、const
let:ES6中新增的用于声明变量的关键字
- let声明的变量只在所处于的块级有效{}
- 不存在变量提升
- 暂时性死区
const:声明量,常量就是值(内存地址)不能变化的量
- 具有块级作用域
- 声明常量时必须赋值
- 常量赋值后,值不能修改
二、解构赋值
ES6中允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构。
对象解构
三、箭头函数
ES6中新增的定义函数的方式
()=>{}
- 在箭头函数中,如果函数体中只有一句代码,并且代码的执行结果就是函数的返回值,函数体大括号可以省略.
- 如果形参只有一个,可以省略小括号
箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this
四、剩余参数
剩余参数语法允许我们将一个不定数量的参数表示为一个数组
剩余参数和解构配合使用
五、扩展运算符
将数组或者对象转为用逗号分隔的参数序列
扩展运算符的应用
1)合并数组
2)将类数组或可遍历对象转换为真正的数组
六、模板字符串
ES6新增的创建字符串的方式,使用反引号定义
-
模板字符串可以解析变量
-
模板字符串可以换行
-
在模板字符串中可以调用函数
七、Map和Set
ES6提供了新的数据结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值。
创建set
初始化
四个操作方法:
add(value):添加某个值,返回 Set 结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
Map 是 ES6 中新增的数据结构,Map 类似于对象,但普通对象的 key 必须是字符串或者数字,而 Map 的 key 可以是任何数据类型.
Map 实例的属性和方法如下:
size:获取成员的数量
set:设置成员 key 和 value
get:获取成员属性值
has:判断成员是否存在
delete:删除成员
clear:清空所有
八、symbol
ES6引入的一种新的原始类型Symbol,表示独一无二的值
Symbol的特点:
- Symbol属性对应的值是唯一的,解决命名冲突问题
- Symbol值不能与其他数据进行计算,包括同字符串拼串
- for in, for of遍历时不会遍历symbol属性
九、迭代器(iterator)
迭代器(iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。
- 通过Symbol.iterator来创建迭代器,通过迭代器的next()来获取迭代后的结果
- 迭代器是用于遍历数据结构的指针
十、生成器(generator)
它与普通函数的区别:
- function后面 函数名之前有个*
- 只能在函数内部使用yield表达式,让函数挂起
概念:
1、ES6提供的解决异步编程的方案之一
2、Generator函数是一个状态机,内部封装了不同状态的数据,
3、用来生成遍历器对象
4、可暂停函数(惰性求值), yield可暂停,next方法可启动。每次返回的是yield后的表达式结果