首页 > 代码库 > 数据类型之简单数据类型

数据类型之简单数据类型

ECMAScript中有五种简单数据类型(基本数据类型):Undefined,Null,Boolean,Number,String。

  • Undefined 类型

  Undefined类型只有一个值,即Undefined。使用 var 声明变量但没有对其初始化时,这个变量的值就是 undefined。

例如:

var message ;
alert(message == undefined);  //true

上面的代码只是声明了 message,没有对其初始化,所以 message 的值就是 undefined 。起始它与  var message = undefined ;  是等价的,但我们并没有必要这么做,因为未经初始化的值默认就是undefined 值。

  还有,包含 undefined 值的变量与尚未定义的变量是不一样的,

例如:

1 var message ;
2 alert(message);  //undefined
3 alert(age);      //报错
4 
5 alert(typeof message); //undefined
6 alert(typeof age); //undefined

第二行代码显示 message 的值, 即 undefined 。第三行代码由于 alert() 函数是尚未声明的变量 age ,则会导致一个错误。对于未声明过的变量,只能执行一个操作,就是用 typeof 检测其数据类型,不过有意思的是,对未初始化的变量执行 typeof 操作符返回的是 undefined ,对为声明的变量执行 typeof 操作符返回的也是 undefined。虽然这两种变量从技术角度看有着本质的区别,但实际上对哪种变量也不可能执行真正的操作。

  • Null 类型

  Null 类型也是只有一个值的数据类型,即 null 。从逻辑上看,null 值表示空对象指针,而这正是使用 typeof 操作符检测 null 值会返回 object 的原因,

例如:

var car = null ;
alert(typeof null);  // object

如果定义的变量准备将来用于保存对象,那么最好把这个变量初始化为 null 。这样一来,只要直接检测 null 值就可以知道相应的变量是否已经保存了一个对象的应用。

例如:

if ( car != null ){
    // code ...  
}

有趣的是   null == undefined  为 true,实际上,undefined 值是派生自 null 值的,因此 ECMA-262 规定他们的想等性测试要返回 true。

数据类型之简单数据类型