js判斷變量是否未定義的代碼
js 代碼中經(jīng)常會碰到 undefined 這種錯誤,下面本文分享一下為什么會發(fā)生這種錯誤以及如何處理這種錯誤,js 中如果通過 var 聲明了一個變量但是沒有初始化該變量的時候,此時該變量的值便為 undefined ,此時判斷變量是否定義可使用 typeof 。下面舉例說明一下
if(!result){
alert("發(fā)生錯誤");
}
以上這段代碼直接運(yùn)行會發(fā)生異常,因為變量 result 沒有申明就被使用了,下面幾種寫法都是正確的。
(1)
if("undefined" == typeof result){
alert("發(fā)生錯誤");
}
(2)
var result;
if(undefined == result){
alert("發(fā)生錯誤");
}
(3)
if("undefined" == typeof result){
alert("發(fā)生錯誤");
}
補(bǔ)充
例如:
if(!myVar01)alert("發(fā)生錯誤");
// 該代碼直接發(fā)生異常,因為變量myVar01沒有申明 if("undefined" == typeof myVar01)alert("發(fā)生錯誤");
// 這樣寫才不至于發(fā)生異常
而: var myVar01; if(undefined == myVar01)alert("發(fā)生錯誤");
// 該代碼會正確運(yùn)行 if("undefined" == typeof myVar01)alert("發(fā)生錯誤");
// 該代碼同樣會正確運(yùn)行
結(jié)論:我們采用下面的方式來保證萬無一失 if("undefined" == typeof myVar01)alert("發(fā)生錯誤");
// 該代碼同樣會正確運(yùn)行
當(dāng)然判斷數(shù)據(jù)的有效性遠(yuǎn)遠(yuǎn)不只這些,還有對null的判斷,數(shù)字是否大道越界.
實例
<script>
//最常用
if("undefined" == typeof('a')){
//未定義
}else{
//定義
}
if("undefined" == typeof a){
//未定義
}else{
//定義
}
if(typeof a != "undefined"){
//true 定義
}else{
//false 未定義
}
</script>
實際應(yīng)用:
downlm有的頁面我們不定義,但有的頁面定義了,就可以需要這樣的判斷方法,沒有定義的就不執(zhí)行。
if("undefined" != typeof downlm){
if(downlm=="soft"){
document.write('成功');
}
}
經(jīng)測試完美。
相關(guān)文章
JavaScript常用的3種彈出框(提示框?alert/確認(rèn)框?confirm/輸入框?prompt)
三種彈框在系統(tǒng)中都是同步執(zhí)行的,也就是說,三種彈框中的任一彈框彈出,代碼都不在執(zhí)行,直到點擊確認(rèn)或取消,關(guān)閉彈窗后,代碼繼續(xù)執(zhí)行,本文通過實例代碼給大家分享JS常用的3種彈出框,感興趣的朋友一起看看吧2022-07-07
JS在可編輯的div中的光標(biāo)位置插入內(nèi)容的方法
這篇文章主要介紹了JS在可編輯的div中的光標(biāo)位置插入內(nèi)容的方法,分別用js與jQuery兩種方式加以實現(xiàn),是非常實用的特效技巧,需要的朋友可以參考下2014-11-11
innerhtml用法 innertext用法 以及innerHTML與innertext的區(qū)別
innerhtml用法 innertext用法 以及innerHTML與innertext的區(qū)別,看完這個大家以后在實際應(yīng)用中,就可以選擇合適的方法。盡可能的考慮到兼容性。2009-10-10
跟我學(xué)習(xí)javascript的浮點數(shù)精度
跟我學(xué)習(xí)javascript的浮點數(shù)精度,帶大家真正的理解JavaScript的浮點數(shù),提醒大家當(dāng)心浮點運(yùn)算中的精度陷阱,需要的朋友可以參考下2015-11-11

