Js中判别一个目标是underfined 仍是 Null一向仍是对比重要的,先来看看Null:
var exp=""; if (exp.abc == null)//条件是有必要存在exp这个目标,而关于它这个特点,则可进行判别,看是不是为NUll { alert("is null"); } if(exp.abc==undefined) { alert("undefined");//exp 为 undefined 时,也会得到与 null 相同的成果,尽管 null 和 undefined 不相同。注意:要一起判别 null 和 undefined 时可运用本法。 }
if(exp.ab()==null){ //这儿是错的,会提示说没有这个ab()的办法,所以犯错 alert("function is null"); } if(exp.ab()==undefined){ //这儿也是错的 alert("undefined"); }
if(!exp){ //当若是 exp 为 undefined,或字符体""、或null,或数字零,或 false,也会得到与 null 相同的成果,尽管 null 和二者不相同。注意:要一起判别 null、undefined、数字零、false 时可运用本法。 alert("!exp"); }
exp=null; console.log(typeof exp);//这儿输出的一定是object,那么判别一个目标是不是为Null? if (!exp && typeof exp != "undefined" && exp != 0) { alert("it is null");//即是这姿态,但请记住,"" 相当于 0 ,false 也相当于 0 }
//更简略的正确的办法: var exp = null; if (exp === null) { alert("is null"); }
如今来看看Undefined 的判别:
if (a == undefined){ alert("a is undefined");//犯错:a is not defined } if (typeof(a) == "undefined") { //这姿态写才是正确的!typeof 回来的是字符串,有六种能够:"number"、"string"、"boolean"、"object"、"function"、"undefined" alert("a is undefined"); } var tmp = undefined; if (tmp== undefined) //undefined也是一种类型 { alert("undefined"); } var tmp = null; if (tmp== undefined) //null尽管不等于undefined,但他们之前能够彼此判别 { alert("undefined"); } if(tmp === undefined){ alert("null is equal undefined"); }else{ alert("null is not equal undefined");//事实证明 null 与 undefined 不是相同的 }
趁便加上一个判别数字的!
var tmp = 0/0; if(isNaN(tmp)){ alert("NaN"); } // 阐明:若是把 NaN 与任何值(包含其本身)比较得到的成果均是 false,所以要判别某个值是不是是 NaN,不能运用 == 或 === 运算符。 // 提示:isNaN() 函数一般用于检测 parseFloat() 和 parseInt() 的成果,以判别它们表明的是不是是合法的数字。当然也能够用 isNaN() 函数来检测管用过错,比如用 0 作除数的状况。