1.1 typeof操作符
ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number 和 String。
1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。
typeof:检测给定变量的数据类型,对一个值使用 typeof 操作符可能返回下列某个字符串 :
- "undefined"——如果这个值未定义;
- "boolean"——如果这个值是布尔值;
- "string"——如果这个值是字符串;
- "number"——如果这个值是数值;
- "object"——如果这个值是对象或 null;
- "function"——如果这个值是函数。
1 var message = "some string"; 2 alert(typeof message); // "string" 3 alert(typeof(message)); // "string" 4 alert(typeof 95); // "number"
1.2 Udefined类型
Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量但未对其加以初始化时,
这个变量的值就是 undefined,例如:
var message; alert(message == undefined); //true
包含 undefined 值的变量与尚未定义的变量还是不一样的。看看下面这个例子:
var message; // 这个变量声明之后默认取得了 undefined 值 // 下面这个变量并没有声明 // var age alert(message); // "undefined" alert(age); // 产生错误
对未初始化的变量执行 typeof 操作符会返回 undefined 值,而对未声明 的变量执行 typeof 操作符同样也会返回 undefined 值。来看下面的例子:
var message; // 这个变量声明之后默认取得了 undefined 值 // 下面这个变量并没有声明 // var age alert(typeof message); // "undefined" alert(typeof age); // "undefined"
1.3 Null类型
Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null。 null值表示一个空对象指针
var car = null; alert(typeof car); // "object"
undefined 值是派生自 null 值的,因此 ECMA-262 规定对它们的相等性测试要返回 true
alert(null == undefined); //true