JS字符串数字互转

本文深入探讨JavaScript中数值与字符串之间的自动转换机制,详细解释如何利用parseInt和parseFloat函数进行字符到数字的转换,并强调使用radix参数的重要性,以及如何避免二义性。

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

转载于:https://www.cnblogs.com/barros/p/3789040.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值