1,综述:
※Undefined 和 Null是JavaScript中的两种数据类型(其他的类型还有:Boolean, String, Number, Object)。
※Undefined类型只有一个值:undefined;Null类型也只有一个值:null。
2,Undefined类型相关说明:
※在使用了var声明了相关变量但未对其初始化时,这个变量的值就是undefined。
※这和未经声明(即未经定义)的变量不一样,如果使用未经声明的变量,会报错ReferenceError: s is not defined。
※对于尚未声明的变量只能进行一个操作:使用typeof 操作符检测其数据类型,然而令人困惑的是,对未经初始化和未经声明的变量执行typeof操作符都返回 undefined 值。这个结果有其逻辑上的合理性,虽然这两种变量从技术角度看有本质的区别,但实际上无论对哪种变量也不可能执行真正的操作。
3,Null类型相关说明:
※首先,null是一个初始化的值。从逻辑角度讲,null值表示一个空的对象指针,所以使用typeof操作符检测null值(或检测值为null的变量)返回值为"object";
※只要意在保存对象的变量还没有真正保存对象,就应该明确的让该变量初始化为null值,这样做不仅可以体现出null作为空对象指针的惯例,而且还有助于进一步区分null和undefined。
4,其他需要注意的地方:
※上面说到如果使用未声明的变量会报错,但如果作为对象的一个属性访问,即使这个属性尚未声明(定义),也不会报错,而是返回undefined。见下例:
alert(sss);//报错
var o = {}; alert(o.sss);//undefined.
一般来说,如果访问对象的属性返回了undefined值,就表示此属性未定义(当然像var o = {sss:undefined}也会返回undefined)。