es2018(ES9)新特性
对象的扩展运算符
1  | const obj1 = {a: 10};  | 
在进行对象融合时,Spread操作结果并不总是与Object.assign()一致
1  | Object.defineProperty(Object.prototype, 'a', {  | 
Object.assign()方法继承了setter属性;而spread操作忽略了setter。
注意
- 可枚举
 - 非继承
 - 浅拷贝
 
异步迭代
1  | // es8异步迭代器  | 
看一下异步迭代器的实现
1  | // 异步迭代器  | 
异步生成器函数
1  | // 跑一下看结果  | 
Promise.prototype.finally
1  | // 当您需要在操作完成后进行一些清理时,finally()方法就派上用场了  | 
正则新特性
1  | console.log(/one[\d\D]two/.test('one\ntwo')); // → true  | 
1  | //  | 
使用\k语法重复调用名称捕获组
1  | // 在一个在句子中找到连续重复的单词  | 
注意
要将命名捕获组插入replace()方法的替换字符串中,需要使用$构造。
1  | const str = 'red & blue';  |