在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变量?
答案 0 :(得分:2)
全局变量可以包含任何数据类型。第一个显示的代码可能无法正常工作,因为在您获取element
的值时未加载文档,而第二个代码正在工作,因为文档是在check()
被调用的时间加载的。 / p>
如果您想使用全局变量,请尝试以下方法:
var element;
var test = "Changed!";
window.onload = function() {
element = window.document.getElementById("subtitle");
check();
}