2.7 类型转换
1、转换成字符串
所有对象都有tostring()方法可以转换成字符串,要注意的是number类型的tostring()方法,它有两种模式,即默认模式和基模式,采用默认模式tostring()方法只是用相应的字符串输出对应的10进制数字值,用基模式可以用不同的基输出数字。示例:
复制代码 代码如下:
var inum1=10;
var inum2=10.0;
var inum3=10;
alert(inum1.tostring()); //outpus 10
alert(inum2.tostring()); //outpus 10
alert(inum3.tostring(2)); //outpus 1010
alert(inum3.tostring(8)); //outpus 12
alert(inum3.tostring(16)); //outpus a
2、转换成数字
ecmascript提供了两种把非数字的原始值转换成数字的方法:parseint()和parsefloat(),需要注意的是parseint()是逐个字符转换的,直到非数字字符为止。示例程序如下:
复制代码 代码如下:
var inum1=parseint(1234blue); //returns 1234
var inum2=parseint(0xa); //returns 10
var inum3=parseint(22.5); //returns 22
var inum4=parseint(blue); //returns nan
parseint()方法还有基模式,可以把二进制,八进制,十六进制或其他任何进制的字符串转换成整数。基是由parseint()第二个参数指定的,示例如下:
复制代码 代码如下:
var inum1=parseint(af,16); //returns 175
var inum2=parseint(10,2); //returns 2
var inum3=parseint(10,8); //returns 8
var inum4=parseint(10,10); //returns 10
//注意:如果十进制数有前导0要用基数模式
var inum5=parseint(010); //returns 8
var inum6=parseint(010,8); //returns 8
var inum7=parseint(010,10); //returns 10
parasefloat()没有基模式,其他与parseint()大致相同,示例:
复制代码 代码如下:
var fnum1=parasefloat(1234blue); //returns 1234.0
var fnum2=parasefloat(0xa); //returns nan
var fnum3=parasefloat(22.5); //returns 22.5
var fnum4=parasefloat(22.34.5); //returns 22.34
var fnum5=parasefloat(0908); //returns 908
var fnum6=parasefloat(blue); //returns nan
3、强制类型转换
ecmascript中可用的强制类型转换如下:
boolean(value)——把给定的值转换成boolean型
number(value)——把给定的值转换成数字(可以是整数或浮点数)
string(value)——把给定的值转换成字符串
示例:
复制代码 代码如下:
var b1=boolean(); //false - empty string
var b2=boolean(hi); //true - not empty string
var b3=boolean(100); //true - not zero number
var b4=boolean(null); //false - null
var b5=boolean(0); //false - zero
var b6=boolean(new object()); //true object
var i1=number(false); //0
var i2=number(true); //1
var i3=number(undefined); //nan
var i4=number(null); //0
var f5=number(5.5); //5.5
var i6=number(56); //56
var i7=number(5.6.7); //nan
var i8=number(new object()); //nan
var i9=number(100); //100
作者:天行健,自强不息
