JavaScript系列:ECMAScript原始类型

  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没有字符类型,所以可以使用这两种表示法中的任何一种。

posted @ 2012-09-23 23:30  libingql  阅读(589)  评论(0编辑  收藏  举报