ECMAScript 2021
JavaScript 版本号
旧的 ECMAScript 版本使用数字命名:ES5 和 ES6。
从 2016 年起,版本按年份命名:ES2016、2018、2020……
ES2021 中的新功能
警告
这些功能相对较新。
旧版浏览器可能需要替代代码(Polyfill)。
JavaScript Promise.any()
示例
// 创建一个 Promise
const myPromise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 200, "King");
});
// 创建另一个 Promise
const myPromise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "Queen");
});
// 任何一个 Promise fulfilled 时执行
Promise.any([myPromise1, myPromise2]).then((x) => {
myDisplay(x);
});
自己动手试一试 »
Promise.any()
自 2020 年 9 月起在所有现代浏览器中都受支持
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
2019 年 8 月 | 2020 年 8 月 | 2020 年 7 月 | 2020 年 9 月 | 2020 年 9 月 |
JavaScript String ReplaceAll()
ES2021 引入了字符串方法 replaceAll()
replaceAll() 方法允许您指定一个正则表达式来替换,而不是一个字符串。
如果参数是正则表达式,则必须设置全局标志 (g),否则会抛出 TypeError。
注意
ES2020 引入了字符串方法 matchAll()。
JavaScript 数字分隔符 (_)
ES2021 引入了数字分隔符 (_) 以提高数字的可读性
数字分隔符仅用于视觉效果。
数字分隔符可以放置在数字的任何位置
注意
数字分隔符不允许放在数字的开头或结尾。
在 JavaScript 中,只有变量可以以 _ 开头。
数字分隔符自 2020 年 1 月起在所有现代浏览器中都受支持
Chrome 75 | Edge 79 | Firefox 74 | Safari 13.1 | Opera 67 |
2019 年 6 月 | 2020 年 1 月 | 2019 年 10 月 | 2019 年 9 月 | 2019 年 6 月 |