📅  最后修改于: 2023-12-03 15:30:38.675000             🧑  作者: Mango
ECMAScript 2018(也称为 ES9)是 JavaScript 核心语言规范的第九版的标准。该版本引入了一些新功能,使得 JavaScript 变得更加强大和易于使用。
下面是 ES9 的一些新功能:
ES9 允许您在异步迭代上使用 for-await-of
。这意味着您可以使用异步生成器来迭代异步对象。
示例:
async function asyncFunc() {
const asyncIterable = [ Promise.resolve(1), Promise.resolve(2), Promise.resolve(3) ];
for await (const item of asyncIterable) {
console.log(item);
}
}
Promise.finally()
方法允许您在 Promise 执行结束后运行一些代码。这里的代码不论 Promise 是成功还是失败都会运行。
示例:
Promise.resolve('dummy').finally(() => {
console.log('Promise ended!');
});
ES9 引入了对对象 rest 和 spread 属性的支持。现在,您可以使用 ...
语法在对象中收集剩余属性或将对象的属性展开。
示例:
let { x, y, ...rest } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(rest); // { a: 3, b: 4 }
let obj1 = { a: 1, b: 2 };
let obj2 = { c: 3, d: 4 };
let obj3 = {...obj1, ...obj2};
console.log(obj3); // { a: 1, b: 2, c: 3, d: 4 }
ES9 允许为正则表达式命名捕获组。这样可以使您在代码中更清晰地标识捕获组。
示例:
const re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const match = re.exec('2019-09-02');
console.log(match.groups.year); // 2019
console.log(match.groups.month); // 09
console.log(match.groups.day); // 02
除了上述功能之外,ES9 还引入了一些其他功能。其中一些功能包括:
trimStart()
和 trimEnd()
)ES9 引入了一些新功能,使得 JavaScript 更加强大和易于使用。这些功能包括异步迭代、Promise.finally()、rest/spread 属性、RegExp 命名捕获组等。现在越来越多的浏览器和 Node.js 版本都支持 ES9,因此,您可以放心地在项目中使用这些功能,以使代码更加简洁、可读性更高。