教大家如何在js中判斷一個值是否是undefined,null,NaN,以及如何單獨判斷
平常開發過程中大家可能遇到一種問題,就是取頁面某個值的時候獲取不到這個var就是undefined了,如果是數字型別的就成了NaN,這個時候判斷頁面這個值是否存在成了一個麻煩事.
那麼有沒有什麼方法可以在我獲取了之後判斷有效性呢?還真的有,
判斷undefined,null,NaN如下:
1 var tmp = null; //這個tmp可以是undefined,NaN,下面的判斷都會返回true. 2 if (!tmp) { 3 alert("null or undefined or NaN"); 4 }
(*切記:!0也是會返回true的,也就是說0也會被當做無效資料,請根據實際情況自己組合判斷)
加一個歎號就行了,有的朋友就會問了,如果我需要在這個資料有效時做某些操作,難道要再加一個歎號?,對,的確是這樣的.如下:
1 var tmp = `wuyou`; 2 if (!!tmp) { 3 alert("資料有效");
4 }
單獨判斷null,undefined,NaN的方法:
判斷NaN:
1 var tmp = 0/0; //0做除數是演算法錯誤,所以結果是NaN 2 if(isNaN(tmp)){ 3 alert("NaN"); 4 }
判斷undefined:
1 var tmp = undefined; 2 if (typeof(tmp) == "undefined"){ 3 alert("undefined"); 4 }
判斷null:
1 var tmp = null; 2 if (!tmp && typeof(tmp)!="undefined" && tmp!=0){ 3 alert("null"); 4 }
判斷undefined和null:
1 var tmp = undefined; 2 if (tmp== undefined) 3 { 4 alert("null or undefined"); 5 } 6 var tmp = undefined; 7 if (tmp== null) 8 { 9 alert("null or undefined"); 10 }
其實undefined和null是一樣的null == undefined.唯一不同就是當tmp是null時
typeof(tmp)!="undefined"為true,undefined為false
謝謝大家看我的部落格,喜歡的話發個評論吧