教大家如何在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
谢谢大家看我的博客,喜欢的话发个评论吧