关于在JavaScript中定义全局变量
根据我的理解,在ES6中,我们可以用两种方式定义全局变量关于在JavaScript中定义全局变量,javascript,ecmascript-6,ecmascript-5,Javascript,Ecmascript 6,Ecmascript 5,根据我的理解,在ES6中,我们可以用两种方式定义全局变量 var global1 = '1'; // CASE 1 在本例中,“global1”被设置为DOM窗口对象的属性,因此window.global1将打印“1” 在这种情况下,“global2”未设置为DOM窗口对象的属性,因此window.global2将打印未定义的内容 我的问题是如何在ES5的情况下实现案例2。你不能。这在ES6中是可能的,因为let和const声明存储在它们自己的全局环境中,而不绑定到全局对象。如果您使用ES5,
var global1 = '1'; // CASE 1
在本例中,“global1”被设置为DOM窗口对象的属性,因此window.global1将打印“1”
在这种情况下,“global2”未设置为DOM窗口对象的属性,因此window.global2将打印未定义的内容
我的问题是如何在ES5的情况下实现案例2。你不能。这在ES6中是可能的,因为
let
和const
声明存储在它们自己的全局环境中,而不绑定到全局对象。如果您使用ES5,则该机制不存在
通常,在这两种方法中,全局变量在JS代码库中都是不受欢迎的。理想情况下,您希望在Webpack旁边使用一个模块系统来捆绑您的代码,这样每个文件都有自己的作用域,并与显式导入和导出链接。在浏览器中。当放置在最顶部作用域时,它们都定义了全局变量。@Stealthteninja,@Aluan Haddad,我的意图是在ES5名称空间中将全局对象定义为window对象的属性。
let global2 = '2'; // CASE 2