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

Ric*_*ard 1 html javascript var

如何声明一个变量,我认为是全局的,我在html文件中声明的方式,然后在js文件中使用它(由<script>标签包含)?

Que*_*tin 6

不要使用var关键字

(也就是说,全局变量通常是JS中任何给定问题的错误解决方案)

  • 但是:**do**使用`var`关键字.如果你使用一个变量而没有在任何地方声明`var`,那么是的,你得到一个偶然的全局,但它在ECMAScript第五版的严格模式下无效,如果你不幸使用一个与任何命名元素匹配的名称(即任何带有`id`,在某些情况下都是`name`),IE会在你尝试分配它时给你一个错误.你可以在全局上下文中声明变量`var`(而不是在函数内部)以使其成为全局变量,如果你使用全局变量,你绝对应该*做到这一点. (3认同)
  • 或者其他任何语言 (2认同)

小智 5

据我了解,您想在 JS 文件中使用 HTML 文件中的变量吗?要将变量从 HTML 文件传递​​到 javascript 文件,请使用函数传递它:

HTML.html

    <a href="#" onClick="test('John Doe')">Send Name</a>
Run Code Online (Sandbox Code Playgroud)

JavaScript.js

function test(full_name) {
 alert(full_name);
}
Run Code Online (Sandbox Code Playgroud)


Jac*_*cob 5

您可以分配给window对象,即window.myGlobal = 3;. window是变量绑定的默认上下文.这就是为什么你可以引用document而不是需要做的window.document.

但是正如大卫所说,你应该避免使用全局变量.如果要使用全局变量,则应将它们和其他顶级声明放在"命名空间"对象中,以避免与其他库发生潜在的命名冲突,如下所示:

myNamespace = { myGlobal: 3 };

// Then to access...
myNamespace.myGlobal = 6;
Run Code Online (Sandbox Code Playgroud)