在函数之外声明变量

时间:2012-09-28 00:14:09

标签: javascript function variables

在JavaScript中的函数之外可以声明什么类型的变量?我在理解以下代码时遇到了一些麻烦。

此代码不会影响subtitle

var element = window.document.getElementById("subtitle");
var test = "Changed!";

function check(){
    element.innerHTML = test;
}

但是,如果我在函数内部移动element,则subtitle元素会更改为“已更改!”。

var test = "Changed!";

function check()
{
    var element = window.document.getElementById("subtitle");
    element.innerHTML = test;
}

是否有规则说window个对象无法在函数外部分配给var,代码中是否存在错误,或者我只是不理解JavaScript变量?

1 个答案:

答案 0 :(得分:2)

全局变量可以包含任何数据类型。第一个显示的代码可能无法正常工作,因为在您获取element的值时未加载文档,而第二个代码正在工作,因为文档是在check()被调用的时间加载的。 / p>

如果您想使用全局变量,请尝试以下方法:

var element;
var test = "Changed!";

window.onload = function() {
    element = window.document.getElementById("subtitle");
    check();
}