1、转换函数:parseInt(string,radix),parseFloat(string);
parseInt()解析一个字符串,并返回一个整数;parseFloat()解析一个字符串,并返回一个浮点数。
string:必须,要被解析的字符
radix:可选,表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
parseInt("10"); //返回 10 parseInt("19",10); //返回 19 (10+9) parseInt("11",2); //返回 3 (2+1) parseInt("17",8); //返回 15 (8+7) parseInt("1f",16); //返回 31 (16+15) parseInt("010"); //未定:返回 10 或 8
返回的值,从string左起第一个字符开始,如果为数字就继续往右取,直到碰到非数字停止,如果第一个字符为非数字,那么返回NaN。
注释:开头和结尾的空格是允许的。
parseInt("123a1235"); //返回123 parseInt("123.2asdf134"); //返回123 parseFloat("123.2ab3"); //返回123.2 parseInt("a123.2"); //返回NaN parseFloat("a123.2"); //返回NaN
2、强制类型转换
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
Boolean()返回一个布尔值:
返回false:0,"",null,NaN,undefined
返回true:非0数字,非空字符串,非空对象
Number()
与parseInt(),parseFloat()不同的是,它转换的是整个值,而parseInt(),parseFloat()是从左边开始的。
Number(true) //1 Number(false) //0 Number(undefined) //NaN Number(null) //0 Number(NaN) //NaN Number(5) //5 Number("55") //55 Number("55.5") //55.5 Number("abc") //NaN Number("5abc7") //NaN Number("5.7.2") //NaN Number(new Object())//NaN
String()
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString();
//好吧,其实我还没理解toString(),这里是我直接搬过来的
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。
var str= '012.345 '; var x = str-0; x = x*1;
上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的