gpt4 book ai didi

javascript - 我应该在网页的什么地方声明全局 JavaScript 变量?

转载 作者:可可西里 更新时间:2023-11-01 02:28:39 25 4
gpt4 key购买 nike

我需要在哪里放置一段 JavaScript 代码来初始化一个变量,该变量必须对页面执行的所有代码可见? (例如,元素上的事件处理程序将需要访问此变量)。

最佳答案

没有全局变量的唯一方法是在函数范围内使用var 关键字。其他任何东西都是全局变量。

(function() {
var local = 5;
})();

函数是文字还是函数定义并不重要,它必须是某种类型的函数。

全局变量示例:

1:

var global = 5; 

以上不在函数范围内,因此即使使用 var 也是全局的。

2.

(function() {
global = 5;
})();

在上面,没有使用var,所以它变成了一个隐含的全局变量。

3.

function foo(){}

foo 未在另一个函数内定义或分配给对象键,因此它可以全局访问。

4.

(function() {
var local = global = 5;
})();

当使用 var 进行多次赋值时,只有第一个变量成为局部变量...所以 global 是一个全局变量,等于 5。

5.

window.foo = 5;

前缀 window. 是在浏览器上下文中定义全局变量的显式方法。

6.

this.x = 5;

默认情况下,在浏览器中,this 指向 DOMWindow,除非您使用的方法附加到不是 window 的对象。它与#5 相同。请注意,如果您使用像 XMLHttpRequest 这样的方法,则上下文是窗口的。

7.

with ( window ) { name = 'john'; }

如果您使用with 语句并且您没有引用已经具有属性的对象,则定义一个全局变量。通常最好避免使用 with 关键字。

结论:

就个人而言,我会将我的代码保存在匿名函数范围内,并且在需要时显式声明全局变量。

(function() {

var governor = 'Schwarzenegger',
state = 'California';

window.president = 'Obama';
})();

在上面,我定义了 governorstate 变量,它们是我函数的局部变量。我想将 president 显式定义为全局变量。这样,我就不会混淆我将哪些变量定义为全局变量,因为我明确地在它们前面加上了 window..

关于javascript - 我应该在网页的什么地方声明全局 JavaScript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com