都是webkit,肿么还不一样js内核呢?

浏览器真该统一了,不同的浏览器,把前端的攻城狮们都整苦了。

今日发现个奇怪的问题,在chrome和firefox下,都很正常(早就抛弃IE了),在搜狗的高速模式下,和360安全浏览器的极速模式下,竟然会不正常,表现在字符转换时结果不一样。

//在chrome的console下,parseInt转换的结果如下:
>parseInt(‘00032’)
32
>parseInt(‘32’)
32

//在搜狗浏览器的console下执行却是:
>parseInt(‘00032’)
26
>parseInt(‘32’)
32



估计是那些所谓的“双核”浏览器,用的都是旧版的webkit,里面的js内核不一样,造成一个基本函数对字符串的解析都不一样。至于26是怎么算出来,看规律是把32当成了8进制的数字,转换成10进制就是26了。


最后还是一个正则解决了问题,就是把前面的0都去掉,再转换:

>parseInt(‘00032’.replace(/^0+/g,””))

32


parseInt