我的问题是,DOM中有一个函数需要一个初始化的变量来加载DOM。问题是即使在加载DOM之前未调用该函数,它也会产生此错误:ReferenceError:未定义变量。如何这样做,最好使用if语句,只要变量未初始化,忽略变量的部分?
<script>
function check(){
if(num>100) alert('test');
else alert('test2');
}
window.onload = function() {
var num = Math.floor(Math.random()*11);
check();
}
</script>
我知道更改function check()
function check(num)
和check();
check(num);
工作正常,但我不喜欢这个解决方案,我想了解为什么我的代码会这样做不工作......
答案 0 :(得分:1)
num
仅在onload
函数内定义。除非将其作为参数传递,否则无法在check
函数中访问它。
function check(num) {
if( num>100) alert("Test");
else alert("Test2");
}
window.onload = function() {
var num = Math.floor(Math.random()*11);
check(num);
};
答案 1 :(得分:1)
num的范围都是错误的。试试这个:
var num;
function check(){
if(num>100) alert('test');
else alert('test2');
}
window.onload = function() {
num = Math.floor(Math.random()*11);
check();
}
答案 2 :(得分:1)
(function (num) {
if( num>100) alert("Test");
else alert("Test2");
})(Math.floor(Math.random()*11));
如果您对明确使用window.onload事件不感兴趣,可以使用上面的匿名函数。