Undefined 类型
Undefined
类型只有一个值,即特殊的undefined
。在使用var
声明变量但未对其加以初始化时,这个变量的值就是undefined
。例如:
var message;
alert(message === undefined); //true
一般而言,不存在需要显示的把一个变量设置为
undefined
值的情况。字面值undefined
的主要目的是用于比较,引入这个值是为了正式区分空对象指针与未经初始化的变量。
不过,包含undefined
值的变量与尚未定义的变量还是不一样的。看看下面这个例子:
var message; //这个变量声明之后默认取得了`undefined`值
// 下面这个变量并没有声明
// var age
alert(message); //"undefined"
alert(age); //产生错误
对于尚未声明的变量,只能执行一项操作,即使用typeof
操作符检测其数据类型(对未经声明的变量调用delete
不会导致错误,但这样做没有什么实际意义,而且在严格模式下确实会导致错误)。
令人困惑的是:对未经初始化的变量执行typeof
操作符会返回undefined
值,而对未经声明的变量执行typeof
操作符同样会返回undefined
值。来看下面的例子:
var message; //这个变量声明之后默认取得了undefined值
// var age
alert(typeof message); //"undefined"
alert(typeof age); //"undefined"
结果表明,对为初始化和为声明的变量执行typeof操作符都返回undefined
值;