在IE6|7|8中,parseInt("08")==0 ?

原创 stopMe 随笔 JavaScript 810阅读 2014-08-21 09:52:19 举报

关于parseInt的用法:

    格式:parseInt(string,[radix])
    作用:将字符串转换成整型数字
    参数:string::字符串,radix:数字基数如8,10,16

补充:JavaScript中数字有十进制、八进制、十六进制。以"0"开头的是八进制,"0x"或"0X"开头的是十六进制

原因:在IE6、IE7、IE8中,第一个参数如果所传的是非法八进制数字,且第二个参数不传时,将返回0,而其它浏览器会忽略0,返回0后的数字。

方法:parseInt("08",10),不要缺省radix,否则无法兼容IE低版本

评论 ( 2 )
最新评论
stopMe 2014-08-21 15:03:24 2F

嗯,是的。

hugeannex 2014-08-21 11:55:20 1F

当然。原来8进制就是以0开头的,你的parseInt()没写第二个参数,它就自以为是8进制,08的8进制就是0,但等于ECMAscript 6标准统一时,8进制就是0o开头了,也就没这问题出现了。但最好还是写第二个参数。。。