窗口变量名

IT技术 javascript
2021-02-24 12:57:02

我正在浏览一些代码,在脚本的开头我们有var emailID = email. 稍后,代码通过 go 来引用 emailID window.emailID我想知道允许您通过 window.variableName 引用变量的规则是什么?

我不能在网上发布我的脚本,因为它与我的工作直接相关并且会违反我的合同。

6个回答

window.variableName意味着该变量是在全局范围内声明的。这意味着任何 JS 代码都可以访问这个变量。使用window.不是必需的,但经常用作表示变量是全局变量的约定。

通常要避免使用全局变量。您应该在函数范围内定义变量。

@Shaya,如果由于某种原因,您无法在需要的上下文中访问该函数或其返回值(例如,在委托的一些罕见用法中)
2021-04-22 12:57:02
当可以简单地在函数外创建变量然后在函数内修改变量时,为什么人们使用它来在函数内创建全局变量?
2021-05-04 12:57:02

JavaScript 中的全局变量附加到“全局对象”,在浏览器环境中它是window对象的别名——这就是为什么你可以用variableName来引用全局变量window.variableName

还值得一提的是,在 JavaScript 中使用全局变量不被认为是良好的编码习惯。

这是一个很好且非常详细的解释

window.myVar或者window["myVar"]是引用全局变量的显式方法。

一个变量是全局变量,如果它是在函数外部声明的(有或没有“var”),或者如果它在函数内部声明而不使用“var”,或者如果它被声明为window.myVaror window["myVar"]

变量是通过为其赋值或使用关键字来声明的var

在一种情况下,引用全局变量很有用,window.myVar就像您在具有名为 的局部变量的函数中一样myvar在那种情况下,myVar指的是局部变量,而window.myVar指的是全局变量。

JavaScript 中的全局变量

var no =10;
function getNo()
   alert(no); // 10
}
getNo();

当设置了一个全局变量时,它会被添加到 window 对象中!

var no =10;
function getNo()
   alert(window.no); // 10
}
getNo();

我们可以直接设置窗口变量。

function setNo(){
  window.no=100;
}
function getNo()
   alert(window.no); // 100
}
setNo();
getNo();

对于纯理论解释(因为我自己遇到了这个“问题”)和易于消化的信息,您可以将问题视为这样:

var myName = "Bob" 等于 - globalObject(Window) = { myName: "Bob" }

因此,当您声明一个变量时,该变量名称将作为属性传递给 window 对象,并将其值作为属性值传递。这就是为什么您可以将变量作为 window 对象的对象方法来调用,基本上。