[英]Declaring Empty Variables to make them global
在JavaScript环境中,我可以在函数之前声明变量,以使该变量在全局级别上可访问。 例如:
var a;
function something(){
a = Math.random()
}
这会使“ a”成为全局变量吗?
或正在使用...
var a = function(){
var b = Math.random();
return b;
}
document.write(a())
真的唯一的方法吗?
除了调用函数“ a()”之外,是否有其他方法可以使“ b”成为全局变量?
基本上有3种方法来声明全局变量:
window.a = 'foo'
。 var
关键字,则无论代码中发生什么位置,都将对其进行全局声明。 注意#1:在严格模式下 ,如果不声明变量(如上述#3),则会收到错误消息。
注意#2:使用window
对象分配全局变量(如上面的#2)在浏览器环境中可以正常工作,但在其他实现(例如nodejs )中可能不起作用,因为全局范围中没有window
对象。 如果您使用的是其他环境,并且想显式地分配全局变量,则必须知道全局对象的名称。
这会使“ a”成为全局变量吗?
var
声明使变量在封闭范围内是局部的,通常是函数的作用域。 如果要在全局范围内执行代码,则a
将是全局变量。 您也可以忽略var
,那么变量将是隐式全局的(尽管显式声明更好地显示了您的意图)。
除了调用函数“ a()”之外,是否有其他方法可以使“ b”成为全局变量?
b
变量始终是函数a
局部变量,除非删除var
,否则永远不会离开它。
在考虑使变量成为全局范围之前,应考虑JavaScript全局名称空间污染 。 声明的全局变量越多,应用程序与另一个应用程序的名称空间冲突并中断的可能性就越大。 因此,将全局变量的数量减到最少非常重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.