学习 ES11:ECMAScript 2020 中的全局对象 globalThis 详解
ECMAScript 2020(或者被称为 ES11)是 JavaScript 语言的最新版本,发布于 2020 年 6 月。本文介绍其中一个新特性:全局对象 globalThis。
是什么?
全局对象 globalThis 是一个新的 ECMAScript 全局对象,可以在任何现代浏览器和 Node.js 中使用。它提供了一种标准的方式,用于在不同的环境中获取全局对象,无论是在 web 浏览器还是在服务器上的 node 程序中。
为什么需要 globalThis?
在 JavaScript 中,全局对象通常使用 window 关键字表示(在 web 浏览器中)或者使用 global 关键字表示(在 node 环境中)。这意味着在不同的环境中使用不同的全局关键字,不便于代码的复用和移植性。而 globalThis 提供了一个通用的方式来获取全局对象,可以在任何环境中使用,使得代码更加具有通用性和可移植性。
下面是一个示例,可以演示在不同的环境中如何使用 globalThis:
// 在浏览器环境中 console.log(window === globalThis); // true // 在 node 环境中 console.log(global === globalThis); // true
如何使用?
使用 globalThis 很简单,直接在脚本中使用即可:
console.log(globalThis);
这将会在控制台中输出全局对象。
下面是一个使用 globalThis 的示例,将会演示如何在不同的环境中使用 globalThis 和 node-fetch 模块来获取网络数据:
-- -------------------- ---- ------- -- -------- ---------- - ---------- -- ----- ----- - ---------------------- ----- -------- ------------------ - ----- -------- - ----- --------------------------------------------------- ----- ---- - ----- ---------------- ------------------ - -- --------- -- ------- ------ --- ------------ - --------------------- - -- - ---- ----- -- ------- ------ --- ------------ - ----------------- -
总结
全局对象 globalThis 是 ECMAScript 2020 的一个新特性,可以在多个环境中通用地获取全局对象。使用 globalThis 可以提高代码的移植性和复用性,特别是在跨平台的开发中。同时,我们还演示了如何使用 globalThis 和 node-fetch 模块来获取网络数据,展示了它的实际用途。
你可以在现代浏览器和 Node.js 中安全地使用 globalThis,它已经被广泛支持。这个新特性的 API 很简单,但却是今后编写可移植性和可伸缩性代码的基础。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649e89b848841e9894b0e96e