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