|
一般情况下我们把字符串转换成整数,可以使用JavaScript内部方法 parseInt()来转换,默认情况下它是按10进制转换的,如:
- var a = parseInt('23'); // a的值是整数23
复制代码
但是如果字符串是以0开头的,转换结果可能不是我们预期的10进制,如:
- var a = parseInt('023'); // a的值是整数19
复制代码
我们来看一下parseInt()方法的定义
- parseInt(string, radix)
- radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
- 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
- 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
- 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
复制代码
所以为了正确地将‘0023’转换为10进制的23, 可以通过参数radix来指定基数10,如
- var a = parseInt('023', 10); // a的值是整数23
复制代码
|
|