ECMAScript有5种原始类型(primitive type),即Undefined、Null、Boolean、Number和String。
1、typeof运算符
ECMAScript提供了typeof运算符来判断一个值是否在某种类型的范围内。可以使用这种运算符来判断一个值是否表示一种原始类型;如果它是原始类型,还可以判断它表示哪种原始类型。
typeof运算符有一个参数,即要检查的变量或值。
对变量或值调用typeof运算符将返回下列值之一:
◊ "undefined" —— Undefined类型变量
◊ "boolean" —— Boolean类型变量
◊ "number" —— Number类型变量
◊ "string" —— String类型变量
◊ "object" —— 引用类型或Null类型变量
var str = 'Test'; alert(typeof str); // output "string" alert(typeof 100); // output "number"
2、Undefined类型
Undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值为 undefined。
var oTemp; alert(oTemp == undefined); // output "true" alert(typeof oTemp); // output "undefined"
typeof对未声明的变量返回 "undefined"。
// var oTemp; alert(typeof oTemp); // output "undefined"
当函数没有返回值时,返回的也是值undefined。
function fnTest() { // leave the function blank } alert(fnTest() == undefined); // output "true"
3、Null类型
另一种只有一个值的类型是Null,它只有一个专用值null,即它的字面值。值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为相等的。
alert(null == undefined); // output "true"
尽管两个值相等,但它们的含义不同。undefined是声明了变量但未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象。
4、Boolean类型
Boolean类型是ECMAScript中最常用的类型之一。它有两个值true和false。
5、Number类型
ECMA-262中定义的最特殊的类型是Number型。这种类型既可以表示32位的整数,也可以表示64位的浮点数。直接输入的任何数字都被看作Number型的字面值。Number有一个特殊值NaN,表示非数(Not a Number)。NaN情况发生在类型(String、Boolean)转换失败时。NaN不能用于算术计算,NaN与自身不相等。
使用函数isNan()判断是否为非数。
alert(NaN == NaN); // output "false" alert(isNaN("blue")); // output "true" alert(isNaN("123")); // output "false"
6、String类型
String类型的独特之处在于,它是唯一没有固定大小的原始类型。可以用字符串存储0或更多的Unicode字符,由16位整数表示。
字符串中每个字符都有特定的位置,首字符从位置0开始,第二个字符在位置1,依次类推。
字符串字面量是有双引号(")或单引号(')声明的。由于ECMAScript没有字符类型,所以可以使用这两种表示法中的任何一种。