关于在JavaScript

时间:2017-11-12 05:23:58

标签: javascript ecmascript-6 ecmascript-5

根据我的理解,在ES6中我们可以用两种方式定义全局变量

var global1 = '1'; // CASE 1

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

let global2 = '2'; // CASE 2

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

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

1 个答案:

答案 0 :(得分:0)

你做不到。在ES6中是可能的,因为letconst声明存储在它们自己的全局环境中,而不是绑定到全局对象。如果您正在使用ES5,则该机制不存在。

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