ECMAScript2021 可用新特性
String.prototype.replaceAll
String.prototype.replaceAll(searchValue, replaceValue)
看到名字是不是第一时间反应 replace
加个g不就完事了哦,那如果遇到需要转义的正则,例如 + .
这些,
或许你还会这种方案
const str = 'qqqq+qqqq+qqqq'; |
如上所述的确可行,也就耗点性能而已嘛~ 由于经常有这种操作,也就催生了 replaceAll
方法,更加快捷的操作字符串
const str = 'qqqq+qqqq+qqqq'; |
还是香的啊。
Promise.any
最近两个版本都有对 Promise 的Api扩充,例如 2020 的 allSettled,回顾下
const p = Promise.all([p1, p2, p3]); |
Promise.all
(Es 2015) 只有当传入的每个 Promise 实例都返回fullField
时,p
才会fullField
,只要
有一个rejected
, p 的状态就会变成rejected
Promise.race
(Es 2015) 当传入的 Promise 实例中 有一个率先改变状态,那么P的状态就跟着改变,也就是说返回最先改变的
Promise 状态(区分fullField
rejected
)Promise.allSettled
(Es 2020) 只有等传入的所有 Promise 实例都返回结果,不区分fullField
rejected
包装实例才会有结束Promise.any
(Es 2021) 当传入的 Promise 有任何一个完成的 就返回那个已经有返回值的 Promise,如果所有的 Promise 都rejected
则返回rejected
的 Promise
Promise.any(promises).then( |
举个栗子,可以使用 Promise.any
来检测哪个接口或站点最快
Promise.any([ |
逻辑赋值操作
先回顾下 Es 2020
的空值合并操作符 ??
,当左侧操作数为 undefinde
或者 null
时,该操作会将右侧操作数值赋给左侧变量
const val = false ?? null; |
再看看逻辑赋值运算符
let logic = 0; |
https://blog.csdn.net/weixin_37352936/article/details/110138808