我们在进行判断时,有时会判断获取到的对象是否为空值,JS变量值的特殊性,容易犯一些错。
先上一些不正确的判断用法
var exp = null;
if (exp == null)
{
alert("is null");
}
exp 为undefined时,也会得到与null相同的结果,虽然null和undefined不一样。
var exp = null;
if (!exp)
{
alert("is null");
}
如果exp为undefined或者数字零,也会得到与null相同的结果,虽然null和二者不一样。
var exp = null;
if (typeof(exp) == "null")
{
alert("is null");
}
为了向下兼容,exp为null时,typeof总返回object。
var exp = null;
if (isNull(exp))
{
alert("is null");
}
JavaScript中没有isNull这个函数。
以下是正确的用法:
var exp = null;
if (!exp && typeof(exp)!="undefined" && exp!=0)
{
alert("is null");
}
尽管如此,我们在DOM应用中,一般只需要用(!exp)来判断就可以了,因为DOM应用中,可能返回null,可能返回undefined,如果具体判断null还是undefined会使程序过于复杂。