如下面的例子所示:
var car =null; alert(typeof null); //object(其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来)
如果定义的变量准备在将来用户保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用.
如下面的例子:
if(car != null){ //对car执行某些操作 }
实际上,undefined值是派生自null值的,因此ECMA-262规定对他们的相等测试要返回true:
alert(null == undefined) //true
这里,位于null和undefined之间的相等操作符(==)总是返回true,不过要注意的是,这个操作符出于比较的目的会转换其操作数。
尽管null和undefined有这样的关系,但它们的用途完全不同,如前所述,无论什么情况下都没有必要把一个变量的值显式地设置为undefined,可视同样的规则对null却不适用。换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。
Undefined 和 Null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
在程序中如何判断变量是否为null。
var exp = null; if (!exp && typeof exp != "undefined" && exp != 0) { alert("is null"); }
typeof exp != "undefined" 排除了 undefined;
exp != 0 排除了数字零和 false。
更简单的正确的方法:
var exp = null; if (exp === null) { alert("is null"); }