如果多人合作开发一个JS项目的话,有时为了代码能够更好的执行少不了要判断一些 js 函数或 js 的变量是否存在。如果存在可以直接调用,如果不存在就需要定义了。那么下面这篇博文,飞鸟慕鱼就来和大家说一说 js 中如何判断函数与变量是否存在的方法。

js判断函数是否存在的方法

js判断函数是否存在,可以通过typeof来判断,通过判断eval(函数名)这个类型是否是function即可。

js代码:

<script>
//判断 FunName 为函数名称    
if (typeof eval(funcName) === "function") { 
    alert("is function");
} else { //不是函数
    alert("not is function");
}
</script>

一般情况下都是结合 try catch 块来判断该函数是否存在,如下面的代码

js代码:

<script>
try {
    if (typeof eval(funcName) === "function") { //是函数    其中 FunName 为函数名称
        alert("is function");
    } else { //不是函数
        alert("not is function");
    }
} catch (e) { 
   console.log("-------我异常了........");
}
</script>

js判断变量是否存在的方法

js判断变量是否存在,使用 typeof(变量名) == "undefined" 即可!

js代码:

<script>
// a 变量名,这里未定义
if (typeof(a) == "undefined") {
    alert("a is undefined")
} else {
    alert("a is defiend")
}
</script>

注:如果定义了变量,但没有赋值,上面的代码也会判断为变量不存在,可以参考下面的代码。

js代码:

<script>
// a 定义了变量,但未赋值,其值为 undefined
var a;
if (typeof(a) == "undefined") {
    alert("a is undefined")
} else {
    alert("a is defiend")
}
</script>

运行结果为:

a is undefined

我们推荐结合 try catch 块来使用上面的代码:

js代码:

try {
    if (typeof (a) == "undefined") {
        alert("a is undefined")
    } else {
        alert("a is defiend")
    }
} catch (e) {
    console.log('我异常了');
}

PS:

如果大量使用JS判断变量或函数是否存在的代码,我们建议把上面的代码封装成一个函数来调用。

JS代码示例:

<script>
//判断变量是否存在
function is_variable(variableName){
    try {
        if (typeof (variableName) == "undefined") {
            return false;
        } else {
            return true;
        }
    } catch (e) {
        console.log('我异常了');
    }
    return false;
}
//判断函数是否存在
function is_function(functionName){
    try {
        if (typeof eval(functionName) === "function") { 
            return true;
        } else { 
            return false;
        }
    } catch (e) {
        console.log("-------我异常了........");
    }
    return false;
}
</script>