ECMAScript 2021 是 JavaScript 语言的最新版本,其中包含了许多新特性和改进。其中之一是对全局对象的扩展,这些扩展使得开发人员可以更方便地编写代码和处理数据。本文将深入探讨 ECMAScript 2021 中的全局对象扩展,包括示例代码和使用指南。
全局对象
在 JavaScript 中,全局对象是所有代码都可以访问的对象。在浏览器中,全局对象是 window 对象,在 Node.js 中,全局对象是 global 对象。全局对象包含了许多内置的属性和方法,例如 console、setTimeout、Math 等。在 ECMAScript 2021 中,全局对象得到了一些新的扩展,使得开发人员可以更方便地使用这些对象。
globalThis
在过去,访问全局对象的方式因环境而异。在浏览器中,可以使用 window 对象,而在 Node.js 中,则需要使用 global 对象。为了统一访问全局对象的方式,ECMAScript 2021 引入了 globalThis 属性。globalThis 属性会返回当前环境下的全局对象,无论在哪种环境下运行,都可以使用 globalThis 访问全局对象。
示例代码:
console.log(globalThis); // 浏览器中输出 window 对象,Node.js 中输出 global 对象
Promise.allSettled
Promise.all 方法可以接受一个 Promise 数组,等待所有 Promise 都成功或有一个 Promise 失败后返回一个新的 Promise。在 ECMAScript 2021 中,Promise.allSettled 方法被引入,它与 Promise.all 方法类似,但是不会因为某个 Promise 失败而立即拒绝整个 Promise,而是会等待所有 Promise 都完成后返回一个新的 Promise,该 Promise 包含了所有 Promise 的状态和结果。
示例代码:
-- -------------------- ---- ------- ----- -------- - - --------------------------- ------------------------ ------------------------ --------- -- ----------------------------------------- -- - --------------------- --- -- --- -- - -- - ------- ------------ ------ --------- -- -- - ------- ----------- ------- ------- -- -- - ------- ------------ ------ -------- -------- - -- -
String.prototype.replaceAll
在过去,要替换字符串中的所有匹配项,通常需要使用正则表达式和 replace 方法。在 ECMAScript 2021 中,String.prototype.replaceAll 方法被引入,它可以更方便地替换字符串中的所有匹配项。
示例代码:
const str = 'hello world'; console.log(str.replaceAll('l', 'x')); // 输出 'hexxo worxd'
数字分隔符
在 ECMAScript 2021 中,数字分隔符被引入,可以在数字中使用下划线作为分隔符,使得数字更易于阅读和理解。
示例代码:
const num = 1_000_000; console.log(num); // 输出 1000000
总结
ECMAScript 2021 中的全局对象扩展为开发人员提供了更方便和易于使用的功能。通过 globalThis 属性,开发人员可以更方便地访问全局对象。通过 Promise.allSettled 方法,开发人员可以更方便地处理 Promise 数组。通过 String.prototype.replaceAll 方法和数字分隔符,开发人员可以更方便地处理字符串和数字。这些新特性使得 JavaScript 语言更加强大和易于使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6681ceb3dc1ed1a61b2056f1