javascript - 声明空变量使它们成为全局变量

标签 javascript global-variables

在 JavaScript 环境中,我可以在函数之前声明一个变量以使该变量在全局范围内可访问。 例如:

var a;
function something(){
  a = Math.random()
}

这会使“a”成为全局变量吗?

或者正在使用...

var a = function(){
  var b = Math.random();
  return b;
}
document.write(a())

真的是唯一的方法吗?

除了调用函数“a()”之外,还有其他方法可以使“b”成为全局变量吗?

最佳答案

基本上有 3 种声明全局变量的方法:

  1. 在全局范围内声明它,在任何函数范围之外。
  2. 明确分配作为窗口对象的属性:window.a = 'foo'
  3. 根本不声明(不推荐)。如果省略 var关键字,当您第一次使用该变量时,无论在您的代码何处发生,它都将被全局声明。

注意#1:当在 strict mode 时,如果你不声明你的变量(如上面的#3),你会得到一个错误。

注意 #2: 使用 window 对象分配一个全局变量(如上面的 #2)在浏览器环境中工作正常,但在其他环境中可能不工作实现(例如 nodejs ),因为全局范围内没有 window 对象。如果您使用不同的环境并想要显式分配全局变量,则必须知道全局对象的名称。

关于javascript - 声明空变量使它们成为全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313317/

相关文章:

javascript - Chrome 扩展 - onClick 函数中的 javascript 仅在调试时有效

javascript - 如何访问另一个jquery函数的全局变量

c++ - RNG 和全局变量规避

javascript - Facebook 是否可以获取用户数据并在 iframe 中填充表单?

javascript - 如何使用 Javascript 使用关闭按钮关闭滚动 super 菜单?

javascript - 如何从 MVC View 中删除整个 div?

oop - 类成员变量不和全局变量一样糟糕吗?

java - java中如何创建非静态全局变量?

javascript - 找不到全局定义的变量

Javascript:解析JSON输出结果