ES11 是 ECMAScript 的最新版本,它带来了一些小但有用的改进以及全新的 API,这些功能可以提高我们做前端开发的效率和人生体验。在本文中,我们将探索 ES11 的新功能,并提供一些指导和示例的代码。
1. Optional Chaining
Optional Chaining 是 ES11 引入的最有用的特性之一。它允许我们在访问一个对象的嵌套属性时,不需要检查每个嵌套属性是否存在。如果嵌套属性不存在,它会返回 undefined
,而不会抛出错误。
以前,我们需要使用繁琐的短路表达式来处理嵌套属性,或者使用 try-catch
语句来捕捉异常。现在,我们可以使用 Optional Chaining 进行更简洁的写法。
-- -------------------- ---- ------- ----- --- - - ---- - ---- - ---- -------- -- -- -- -- -- -------- -------- ------ ----- -------- - ------------------- -- --- ------- ---------------------- -- ----------- --------- ----- ----- --------------- - ----------------------------------- -- --- --------- -----------------------------
2. Nullish Coalescing Operator
Nullish Coalescing Operator 是一个类似于 Optional Chaining 的特性,它帮助我们定义一个默认值当值为 null
或 undefined
时返回一个备用值。
以前,我们通常使用短路表达式来处理变量的默认值,但它无法处理值为 false
或 0
的情况。现在,使用 Nullish Coalescing Operator 可以处理所有情况。
-- -------------------- ---- ------- -- ------- - ------ - ----------- ---------------- ---- ----- ----- - ----- ----- ------------ - -------- ----- -------- - ----- -- ------------- -- --- ------- ---------------------- -- ------- - --- - ------- --------- ----- ----------- - -- ----- ------------- - --- ----- ------ - ----------- -- -------------- -- --- - --------------------
3. Promise.allSettled()
Promise.allSettled() 方法返回一个 Promise,当所有 Promise 参数都已经执行时,resolve,无论它们是成功的还是失败的,结果都是一个遵循 PromiseStatusObject 规范的数组。
这个新的 Promise 对象无论原始 Promise 完成情况如何,它们总是解析为成功状态。Promise.all() 的返回值会在所有 Promise 对象完成后,以它们完成的顺序将其解析为一个序列。
const promise1 = Promise.resolve(10); const promise2 = Promise.reject('Failed'); const promise3 = Promise.resolve(100); Promise.allSettled([promise1, promise2, promise3]) .then(results => results.forEach(result => console.log(result.status, result.value))) .catch(error => console.log(error));
结果为以下数组:
[ { status: 'fulfilled', value: 10 }, { status: 'rejected', reason: 'Failed' }, { status: 'fulfilled', value: 100 } ]
4. globalThis
globalThis 是一个新的全局对象,代表了全局的 this。在浏览器中,globalThis 是 window 对象,而在 Node.js 中,它是 global 。globalThis 能够让我们更容易地在不同的 JavaScript 执行上下文中编写可移植的代码,而不关心它们的环境。
// 因为 globalThis 是全局对象,所以不需要考虑运行时环境 globalThis.console.log('Hello, globalThis!');
结论
ES11 带来了许多新特性和用于提高 JavaScript 开发效率的功能。Optional Chaining 和 Nullish Coalescing Operator 解决了一些常见的问题,Promise.allSettled() 允许我们更容易地并行处理多个 Promise,而 globalThis 确保我们编写的代码能够在所有执行上下文中正确运行。
我们鼓励所有开发人员学习这些新的功能,并开始在自己的代码中使用它。ES11 的新特性绝对可以帮助你更好地编写 JavaScript 代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670c65de66ef9cf37fb0c132