创建一个使用变量的函数(如果已经初始化)

时间:2013-09-21 15:15:01

标签: javascript

我的问题是,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);工作正常,但我不喜欢这个解决方案,我想了解为什么我的代码会这样做不工作......

3 个答案:

答案 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事件不感兴趣,可以使用上面的匿名函数。