关于在 JavaScript 中定义全局变量

About defining global variables in JavaScript

据我了解,在 ES6 中我们可以通过两种方式定义全局变量

var global1 = '1'; // CASE 1

在这种情况下,"global1" 被设置为 DOM window 对象的 属性,因此 window.global1 将打印“1”。

let global2 = '2'; // CASE 2

在这种情况下,"global2" 未设置为 DOM window 对象的 属性,因此 window.global2 将打印 undefined.

我的问题是如何在ES5的情况下实现案例2。

你不能。这在 ES6 中是可能的,因为 letconst 声明存储在它们自己的全局环境中,不依赖于全局对象。如果您使用的是 ES5,则该机制不存在。

一般来说,全局变量,无论是哪种方法,在 JS 代码库中都是不受欢迎的。理想情况下,您希望与 Webpack 一起使用模块系统来捆绑您的代码,以便每个文件都有自己的范围,并与显式导入和导出相关联。