
ECMAScript 中有 5 中简单的数据类型,也即基本数据类型:Undefined、Null、
Boolean、Number 和 String。还有一种复杂数据类型:Object,Object 本质上是由一组无
序的名值对组成的。
1、typeof 操作符
首先要介绍的是 typeof 操作符,因为 ECMAScript 是松散类型的,所以需要一种方式
来检测给定变量的数据类型,就是 typeof 了。对一个值使用 typeof 操作符可能返回以下某
个字符串。
� "undefined"——如果这个值未定义,后面会详细说明
� "boolean"——如果这个值是布尔值
� "string"——如果这个值是字符串
� "number"——如果这个值是数值
� "object"——如果这个值是对象或者 null
� "function"——如果这个值是函数
下面是几个使用 typeof 操作符的例子:
var typeText = "Javascript";alert(typeof typeText);
//"string"alert(typeof (typeText)); //"string"alert(typeof 123);
//"number"
复制
一定注意,typeof 是操作符,不是函数,所以上面第三行的代码中的括号,虽然可以使
用,但不是必需的,加上括号反而会让人误解。
2、Undefined 类型
这是第一个一定要详细说明的 Javascript 数据类型。Undefined 类型只有一个值,也
即 undefined。
在使用 var 声明变量但是未对其进行初始化的时候,这个变量的值就是 undefined。例
如:
var text;alert(text == undefined); //true
复制
这里声明了 text 变量,但是并未对其进行初始化,所以比较这个变量和 undefined 字
面量,结果表明它们是相等的。其实上面的语句与下面的例子是等价的:
var text = undefined;alert(text == undefined); //true
复制
但是,实际上我们并没有必要在声明变量的时候显式的将其初始化为 undefined。
令人困惑的是,对未初始化的变量执行 typeof 操作,会返回 undefined 值,而对未声明的
变量执行 typeof 操作符同样也会返回 undefined 值。
var text; //这个变量声明后默认获得 undefined 值//下面这个变量没有声明//var
message;