Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于在JavaScript中定义全局变量_Javascript_Ecmascript 6_Ecmascript 5 - Fatal编程技术网

关于在JavaScript中定义全局变量

关于在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,

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

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