JS字符串数字互转

JS是一种弱类型的脚本语言,为变量赋值是会自动转换为相应的类型,例如:

var a = 1;
alert(a + 1);//结果为2 自动识别为数字类型进行数学运算

var b = '1';
alert(b + 1);//结果为11 自动识别为字符类型进行连接操作
但在某些情况我们在对数字类型的变量进行字符连接操作后,变量就转化为字符类型了,例如:
var c = 1;
alert(c += '');//结果为1 但此时c的类型一变成字符型

此时如果我们需要把c转化为数字类型就需要用到parseInt函数把字符转化为整数,例如:

var d = ‘123’;
alert(d + 1);//结果为1231
alert(parseInt(d) + 1);//结果为124 已经转化为数字类型,可以进行数学运算了
parseInt函数还有一个可选参数radix用于指定要转换字符的基数,为0或为空时将根据字符串来判断数字的基数;出现非数字字符(首字符可以为减号)将返回NaN。例子:
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("10");      // 返回 10

parseInt("0x10");    // 返回 16

parseInt("010");     //返回10或8 在没有指定radix时,ECMAScriptV3允许实现将以“0”(但不是 “OX” 
//或“OX”) 开头的字符串解析为八进制或十进制的数,要避免这种二义性,应该明确指定基数。

 

相应的还有parseFloat,把字符解析为数字,例如:

parseFloat('1.2'); //结果1.2
posted @ 2014-06-15 01:32  铁皮鸭子  阅读(306)  评论(0编辑  收藏  举报