在 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:当在 strict mode 时,如果你不声明你的变量(如上面的#3),你会得到一个错误。
注意 #2: 使用 window
对象分配一个全局变量(如上面的 #2)在浏览器环境中工作正常,但在其他环境中可能不工作实现(例如 nodejs ),因为全局范围内没有 window
对象。如果您使用不同的环境并想要显式分配全局变量,则必须知道全局对象的名称。
关于javascript - 声明空变量使它们成为全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313317/