Undefined类型只有一个值 即特殊的undefined 在使用var声明变量但未对其加以初始化时 这个变量的值就是undefined
var message alert(message == undefined); //true
此例子声明message 但未对其进行初始化,比较这个变量的自变量与undefined字面量 结果表明他们是相等的; 这个例子使用undefined值显式初始化变量message 但我们没有必要这么做 因为未初始化的值默认值就是undefined
不过 包含undefined值得变量和尚未定义的变量还是不一样
var message // var age alert(message); //弹窗'undefined' // alert(age); //产生错误
对于尚未声明的变量 只能执行一项操作 即使用typeof操作符检测其数据类型
var message // var age alert(typeof message); //弹窗'undefined' alert(typeof age); //弹窗'undefined'
NULL类型是第二个只有一个值的数据类型 这个特殊的值是NULL,从逻辑角度看NULL值表示一个空对象指针,这也正是使用typeof操作符检测null时值会返回"object"的原因
var message = null; alert( typeof message); //弹窗'object'
如果定义的变量准备在将来用于保存对象 那么最好将该变量初始化为null 而不是其他值 这样一来只要检测null值就可以知道相应的变量是否已经保存了一个对象的引用
if( message != null){ //对message对象执行某些操作 }
实际上 undefined的值是派生自null值得
alert( null ==undefined);//true