常用的JS数据类型转换方法
JS 数据类型转换的方法有以下3种:
1)使用转换函数
2)强制类型转换
3)利用js变量弱类型特性进行转换
1:js提供了parseInt()和parseFloat()这两个转换函数。
parseFloat() 则是转换为float型。
parseInt() 在转换过程中,会从字符串 位置0开始判断 该字符是否为有效数字,如果不是 返回 NaN(Not a Number)
如果是,则继续判断位置1,以此类推。
例:
parseInt("256blue"); //return 256
parseInt("27.5"); //return 27
parseInt("rr"); //return NaN
对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法:
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
parseFloat() 在转化过程中类似于parseInt(),从0位置判断是否是有效数字。
parseInt("256blue"); //return 256.0
在转换时,该函数会认为第一个小数点是合格的,但是出现多个小数点的时候,从第二个小数点位置开始,后面字符会判断为无效数字。
例:parseInt("256.45.22"); //return 256.45
parseFloat()只识别十进制形式的字符串,例如0xA将被识别为 NaN.
parseFloat("0551")前导0也将被忽略 返回 551
同时parseFloat()也没有基模式。
2:强制类型转换
Boolean(value)——把给定的值转换成Boolean型;
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
Boolean(""); //false – empty string
Boolean("hell"); //true – non-empty string
Boolean(1006); //true – non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true – object
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。还记 得吗,parseInt()和parseFloat() 方法只转换第一个无效字符之前的字符串,因此 "4.5.6 "将被转换为 "4.5 "。用Number()进行强制类型转换, "4.5.6 "将返回NaN,因为整个字符串值不能转换成数字。如果字符串值能被完整地转换,Number()将判断是调用parseInt()方法还是调用 parseFloat()方法。Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "3.5 ") 3.5
Number( "36 ") 36
Number( "5.3.7 ") NaN
Number(new Object()) NaN
Number(1004) 1004
String(value)——把给定的值转换成字符串。
String()是最简单的,因为它可把任何值转换成字符串。
toString()方法,即把1转换成 "1 ",把true转换成 "true ",把false转换成 "false ",依此类推。
String()和toString()的区别是:对null或undefined值强制类型转换String()不报错,toString()报错
var s1 = String(null);//return null
var s = null;
var s2 = s.toString();//error
3. 利用js变量弱类型特性转换
<script> //eg var s= '013.365 '; var a= s-0; a= a*1; </script>