ES9 ES2018
字符串
放松对标签模板里字符串转义的限制:遇到不合法的字符串转义返回undefined
,并且从raw
上可获取原字符串
对象
扩展运算符"..."
转换对象为用逗号分隔的参数序列({ ...obj }
,相当于rest/spread参数
的逆运算)
应用场景:
Async
异步迭代器 await ... of
await可以和for...of循环一起使用,以串行的方式运行异步操作
async function process(array) {
for await (let i of array) {
// doSomething(i);
}
}
正则
命名捕获组
const reg = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;
const match = reg.exec('2021-02-23');
反向断言
(?=p)、(?<=p) p 前面(位置)、p 后面(位置)
(?!p)、(?<!p>) 除了 p 前面(位置)、除了 p 后面(位置)
dotAll
模式
正则表达式中点.
匹配除回车外的任何单字符,标记s
改变这种行为,允许行终止符的出现
/hello.world/.test('hello\nworld'); // false
Promise
Promise.finally()
Promise.resolve().then().catch(e => e).finally();