Undefined类型只有一个值 即特殊的undefined 在使用var声明变量但未对其加以初始化时 这个变量的值就是undefined javascript
var message alert(message == undefined); //true
此例子声明message 但未对其进行初始化,比较这个变量的自变量与undefined字面量 结果代表他们是相等的; 这个例子使用undefined值显式初始化变量message 但咱们没有必要这么作 由于未初始化的值默认值就是undefinedjava
不过 包含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"的缘由blog
var message = null; alert( typeof message); //弹窗'object'
若是定义的变量准备在未来用于保存对象 那么最好将该变量初始化为null 而不是其余值 这样一来只要检测null值就能够知道相应的变量是否已经保存了一个对象的引用 ip
if( message != null){ //对message对象执行某些操做 }
实际上 undefined的值是派生自null值得class
alert( null ==undefined);//true