国产视频app如果多人合作開發一個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>

国产视频app一般情況下都是結合 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判斷變量是否存在的方法

国产视频appjs判斷變量是否存在,使用 typeof(變量名) == "undefined" 即可!

js代碼:

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

国产视频app注:如果定義了變量,但沒有賦值,上面的代碼也會判斷為變量不存在,可以參考下面的代碼。

js代碼:

<script>
// a 定義了變量,但未賦值,其值為 undefined
var a;
if (typeof(a) == "undefined") {
    alert("a is undefined")
} else {
    alert("a is defiend")
}
</script>

運行結果為:

a is undefined

国产视频app我們推薦結合 try catch 塊來使用上面的代碼:

js代碼:

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

PS:

国产视频app如果大量使用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>