ES5中有5中基本数据类型:undefined、null、boolean、number、string和一种复杂数据类型object。
其中undefined和null类型相对特殊。
一、undefined
在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:
var message;
alert(message == undefined); //true
但是,包含undefined值的变量与尚未定义的变量还是不一样的。例:
var message; //这个变量声明之后默认取得了undefined值
// 下面这个变量没有声明
// var age
alert(message); //"undefined"
alert(age); //产生错误
困惑的是:对未初始化和未声明的变量执行typeof操作符都返回undefined值。这样返回的合理性在于:无论哪种变量都不能执行真正的操作。
var message; //这个变量声明之后默认取得了undefined值
// 下面这个变量没有声明
// var age
alert(typeof message); //"undefined"
alert(typeof age); //"undefined"
二、null
从逻辑角度,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回"object"的原因。
如果定义的变量准备在将来用于保存对象,应该将该变量初始化为null。