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'; |