随着时代的发展,JavaScript 也在不断地进化。ES9 和 ES10 是 JavaScript 最新的两个版本,它们分别在 2018 年和 2019 年发布。这两个版本引入了许多新特性,本文将为大家介绍其中的一些。
ES9 新特性
1. 异步迭代
ES9 引入了异步迭代器协议,它允许我们使用 for await...of
循环遍历异步迭代器生成的值。
-- -------------------- ---- ------- ----- ------------- - - ------------------------ - ----- ---- - -------------------------- -------------------------- --- --------- - -- ------ - ----- ------ - -- ---------- - ------------ - ------ - ------ ----- ----------------- -- - ---- - ------ - ----- ---- -- - - -- - -- ------ -------- -- - --- ----- ------ ---- -- -------------- - ------------------ - ----- -- ------- -- ----- -- -----
2. Promise.prototype.finally
Promise.prototype.finally
方法被添加到 ES9 中,它允许我们在 Promise 执行结束时执行一些代码,不论 Promise 的状态是成功还是失败。
-- -------------------- ---- ------- ------------------------ ----------- -- ----------------- ------------ -- ------------------- ----------- -- ------------------------ -- ------- -- ----- -- ------- ----------------------- ----------- -- ----------------- ------------ -- ------------------- ----------- -- ------------------------ -- ------- -- ----- -- -------
3. Rest/Spread 属性
ES9 引入了 Rest/Spread 属性,它允许我们使用 ...
操作符来获取对象中的剩余属性或将对象的属性展开到另一个对象中。
const person = { name: 'Alice', age: 20, gender: 'female' }; const { name, ...rest } = person; console.log(name); // Output: Alice console.log(rest); // Output: { age: 20, gender: 'female' } const person1 = { name: 'Bob', age: 25 }; const person2 = { ...person1, gender: 'male' }; console.log(person2); // Output: { name: 'Bob', age: 25, gender: 'male' }
ES10 新特性
1. Array.prototype.flat
Array.prototype.flat
方法被添加到 ES10 中,它允许我们将多维数组展开成一维数组。
const arr1 = [1, 2, [3, 4]]; console.log(arr1.flat()); // Output: [1, 2, 3, 4] const arr2 = [1, 2, [3, [4, 5]]]; console.log(arr2.flat()); // Output: [1, 2, 3, [4, 5]] console.log(arr2.flat(2)); // Output: [1, 2, 3, 4, 5]
2. String.prototype.trimStart 和 String.prototype.trimEnd
ES10 引入了 String.prototype.trimStart
和 String.prototype.trimEnd
方法,它们分别用于去除字符串开头和结尾的空格。
const str = ' hello world '; console.log(str.trimStart()); // Output: 'hello world ' console.log(str.trimEnd()); // Output: ' hello world'
3. Object.fromEntries
Object.fromEntries
方法被添加到 ES10 中,它允许我们将键值对数组转换为对象。
const entries = [['name', 'Alice'], ['age', 20], ['gender', 'female']]; console.log(Object.fromEntries(entries)); // Output: { name: 'Alice', age: 20, gender: 'female' }
总结
本文介绍了 ES9 和 ES10 中一些新的 JavaScript 特性,这些特性可以帮助我们更好地编写 JavaScript 代码。我们可以通过学习这些特性来提高自己的编程能力,写出更加高效和优雅的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65502a3e7d4982a6eb90f0e8