ECMAScript 2020 中的全局对象属性:globalThis

ECMAScript 2020 中引入的新特性之一是全局对象属性 globalThis。它是一个可以在任何环境下访问的变量,代表当前运行的环境的全局对象,在浏览器中是 window,而在 Node.js 环境中是 global。这个属性的出现解决了跨平台编程时访问全局对象的问题,也使得编写跨平台代码更方便。

如何使用 globalThis

使用 globalThis 和直接使用全局对象是一样的,只需要将代码中的 window 或 global 替换成 globalThis 即可。比如之前如果要在浏览器中打印全局对象,需要这样写:

--------------------

现在可以这样简化:

------------------------

globalThis 的学习意义

除了访问全局对象的方便之外,globalThis 还具有其他一些意义。

首先,对于刚刚接触前端的开发者(特别是那些之前已经使用过其他语言的开发者),认识到运行环境的差异性以及如何访问全局对象非常重要。而 globalThis 的出现可以使他们更快地理解这个概念。

其次,使用 globalThis 可以避免在不同平台上书写特定的代码。在过去,开发者可能需要写一些适配代码,才能在各种平台上使用相同的代码。而现在,globalThis 相当于一个统一的接口,不同平台上的代码可以使用相同的语句。

最后,globalThis 的出现还代表着 JavaScript 语言的不断发展。ECMAScript 标准在每一次更新中都会包含一些新的特性,这些特性代表着 JavaScript 语言的进步,对于开发者来说也意味着更好的编程体验和更高的生产效率。

典型示例

一个简单的例子可以说明 globalThis 的作用。在过去,如果我们需要在浏览器和 Node.js 环境中分别使用 setTimeout,代码可能如下所示:

-- ------- ------ --- ------------ -
  -------------------- -- -
    ------------------- -----------
  -- ------
- ---- -
  ------------- -- -
    ------------------- -----------
  -- ------
-

现在可以通过 globalThis 简化代码:

------------------------ -- -
  ------------------- --------------
-- ------

这段代码可以运行在各种平台上。

结论

全局对象属性 globalThis 是一个非常方便的新特性,它简化了跨平台编程的代码,同时也反应了 JavaScript 语言的发展。对于任何一个 JavaScript 开发者而言,学习 globalThis 对于编写高质量代码是非常有意义的。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67061b84d91dce0dc8585a82