最近在修复一个bug时,对parseInt()函数有了进一步的了解
以前不了解parseInt(),一直是简单的使用。传入一个参数,用以将字符串转成数字。
现在,了解到它可以传两个参数parseInt(string, radix)。
第二参数是进制数,不写则默认是10。
当第二参数为空时,
情况1.若当第一参数字符串以0开头,以八进制的进行计算;
情况2.若第一参数字符串以0x开头,以十六进制的进行计算。
但是,要注意这是,情况1在浏览器中并不一定出现,得到的结果可能是八进制,也可能时十进制。因浏览器不同,结果会不同。
parseInt('010')
在ie 9,firefox,chrome中得到的结果就是10。而ie8及低版本,则结果是8。
因而在使用此方法是要格外注意。
parseInt方法说明 w3school的parseInt 方法
至于parseFlot()方法,对于第一参数为0开头的,不在转为八进制,而是转为十进制【大多浏览器都是这样的】
详细的类型转换请看 w3school ECMAScript类型转换
另外更多情况的详细说明 另一篇博客