Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript和HTML中声明全局变量?_Javascript_Html_Var - Fatal编程技术网

如何在javascript和HTML中声明全局变量?

如何在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> 您可以分配给

如何声明一个变量,我认为是全局的,就像我在html文件中声明然后在js文件中使用它一样(包含在
标记中)?

不要使用
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
}