如何在javascript和HTML中声明全局变量?
如何声明一个变量,我认为是全局的,就像我在html文件中声明然后在js文件中使用它一样(包含在如何在javascript和HTML中声明全局变量?,javascript,html,var,Javascript,Html,Var,如何声明一个变量,我认为是全局的,就像我在html文件中声明然后在js文件中使用它一样(包含在标记中)?不要使用var关键字 (也就是说,对于JS中的任何给定问题,globals通常都是错误的解决方案)据我所知,您想在JS文件中使用HTML文件中的变量吗?要将变量从HTML文件传递到javascript文件,请使用函数传递: HTML.HTML <a href="#" onClick="test('John Doe')">Send Name</a> 您可以分配给
标记中)?不要使用var
关键字
(也就是说,对于JS中的任何给定问题,globals通常都是错误的解决方案)据我所知,您想在JS文件中使用HTML文件中的变量吗?要将变量从HTML文件传递到javascript文件,请使用函数传递: HTML.HTML
<a href="#" onClick="test('John Doe')">Send Name</a>
您可以分配给
窗口
对象,即window.myGlobal=3代码><代码>窗口
是变量绑定的默认上下文。这就是为什么您可以引用文档
,而无需执行窗口。文档
但正如大卫所说,你应该避免使用globals。如果要使用globals,应该将它们和其他顶级声明放在“namespace”对象中,以避免与其他库发生潜在的命名冲突,如:
myNamespace = { myGlobal: 3 };
// Then to access...
myNamespace.myGlobal = 6;
请避免使用全局变量 为了回答您的问题,有两种方法可以在JavaScript中声明全局变量。您可以省略'var'关键字,也可以在任何函数之外声明变量 在此代码示例中,thisIsGlobal和thisIsAlsoGlobal都是全局变量,设置为null
var thisIsGlobal= null;
function foo() {
thisIsAlsoGlobal = null;
// code goes here
}
或者任何其他语言,对于这个问题,请使用
var
关键字。如果使用变量时没有在任何地方声明它var
,那么是的,您会得到一个意外的全局变量,但它在ECMAScript第五版的严格模式下无效,并且如果您不幸使用了与任何命名元素匹配的名称(即具有id
,在某些情况下是name
),IE将在您尝试分配时给您一个错误。您可以在全局上下文中(而不是在函数中)声明变量var
,使其成为全局变量,如果您使用的是全局变量,您肯定应该这样做。@bobince:您偷了我的话!:),分配给未声明的标识符将引发ReferenceError
exception…uuu,我喜欢你的解决方案…:)谢谢我希望这回答了您的问题变量不能在变量名中有破折号,因此全名无效。您可以尝试全名、全名或其他名称。问题是JavaScript解析器将尝试从'name'变量中减去'full'变量。Doh!接得好,我经常发现自己在这样做。
var thisIsGlobal= null;
function foo() {
thisIsAlsoGlobal = null;
// code goes here
}