1、Symbol是es6引入的一种新的原始数据类型的Symbol。
let s =Symbol()
2.ES6新增了两种集合结构:Set、Map。提供了新的数据结构 Set类似于数组,但是成员值都是唯一的,没有重复值。
let s=new Set();
add() 添加数据,delete() 删除数据,clear() 清空,forEach()遍历 ,size 数据的个数。由于不允许重复类型的特性;所以set也可以用来完成数组去重。
3.提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。
let m =new Map(); 常见方法:set(key,value) 设置,get(key) 取值,delete(),clear(),forEach(),keys(),values(),size 个数
4.Iterator和Generator
Iterator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。(2) 使用next()获得序列中的下一个元素。(3) 使用hasNext()检查序列中是否还有元素。(4) 使用remove()将迭代器新返回的元素删除。
generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次1、function 关键字和函数之间有一个星号(*),且内部使用yield表达式,定义不同的内部状态。2、调用Generator函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象。
5.Promise
Promise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法,对象的状态不受外界影响。Promise
对象代表一个异步操作,有三种状态:pending
(进行中)、fulfilled
(已成功)和rejected
(已失败),一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise
对象的状态改变,只有两种可能:从pending
变为fulfilled
和从pending
变为rejected
。
6.async
async函数本质上就是 Generator 函数的语法糖。真正意义上的解决异步回调问题的方案,可以用同步的写法去写异步代码。通过async关键字来修饰函数,函数就变成了异步函数.async函数的返回值为:promise;async函数的return的内容,会成为promise成功状态的数据