javascript原始类型

在ECMAScript中提供了5种原始类型(Primitive type,Null,Boolean,Number和String)。并提供了typeof运算符来判断这个值是否在某个类型范围内。
typeof有一个参数,即它要检测的变量或值。
var temp = "Hello world";
alert(
typeof temp);   //这里显示是"string"
alert(typeof 95);     //这里显示是"number"
对变量或值使用typeof运算将会返回以下几种类型:
"#ff0000" 变量为"Undefined"类型
"boolean" 变量为"Boolean"类型
"number" 变量为"Number"类型
"string" 变量为"String"类型
"object" 变量为引用类型或"Null"类型
也就是ECMAScript中提供的5种原始类型

1."Undefined"类型
Undefined类型只有一个值就是undefined。当变量声明后没有初始化,这个变量的值就是undefined。如:
var temp;
alert(temp 
== undefined);  //这里显示为true,说明这两个值是相等的
当一个函数没有明确的返回值时,它也将返回undefined
2."Null"类型
Null类型也只有一个值就是null。null其实是从undefined派生来的,也因此在ECMAScript中它们被定义为相等的。
alert(null == undefined);   //这里显示为true说明这两个值是相等的
虽然这两个值是相等的,但是它们的意义却并不相同。undefined表示一个声明了但没有初始化的变量的值,null则表示尚未存在的对象,如果一个函数或方法要返回一个对象,但对象不存在时就应用null而不是undefined。
3."Number"类型
在ECMAScript中Number既可以表示整数也可以表示浮点数。整数也可以有8进制(0开头)和16进制(0x开头)表示
Number类型还有几个特殊值:Number.MAX_VALUE(可以表示的最大值),Number.MIN_VALUE(可以表示的最小值),当超过最大值是变量将被赋予Number.POSITIVE_INFINITY,当小于最小值时变量将被赋予Number.NEGATIVE_INFINITY。
由于无穷大可以是正数也可以是负数,因此只有一个函数来判断是否越界(isFinit函数)
最后还有一个特殊值NaN,它表示一个非数值(Not a Number)。一般来说只有当其它类型转换成Number类型失败时会被赋予NaN,但是NaN有一个奇特的地方就是它自身并不相等。
alert(NaN == NaN);   //显示为false
出于这个原因,因此一般不推荐直接使用NaN,而是使用函数IsNaN来判断。
4."String"类型
String是唯一一个没有固定大小的原始类型。String保存的为Unicode字符,字符串中每个字符都有一个固定的位置,从下标0开始计算。字符串的值可以用双引号也可以用单引号声明。

其实在ECMAScript中的Boolean,Number和String都是伪对象,这也就是说其实它们都是有属性和方法的。这几个类型都有个toString方法来转换成字符串类型。Number类型的toString方法有两种模式,默认模式和基模式。默认模式下以10进制方式将值转换成字符串。在基模式下可以根据参数转换成2进制,8进制,16进制,基就是要转换成进制的基数。
字符串转换成数字,有两种方法即:parseInt和parseFloat方法,分别对应整数和浮点数。转换失败则返回NaN。parseInt方法也有基模式。
强制类型转换:
Boolean(val) 转换成Boolean类型
Number(val) 转换成Number类型
String(val) 转换成String类型
posted @ 2008-06-24 14:44  Jumper  阅读(625)  评论(1编辑  收藏  举报