Chrome更改parseInt默认转�规则 - 凡事预则立,�预则废

今天看到Chrome有更新,就�级了,目�最新稳定版本Chrome 25.0.1364.97 m,然�很高兴的�现之�的崩溃BUG居然已�修�了。

�过很显然新的问题�出�了,�然就�会有这么一篇文章了,下�在弄一个公�培训的PPT,里�需�写到parseInt的一个�典陷阱。

首先回顾一下parseInt(string, radix)当�略radix�数时,大致的解�过程:

  • 当string以0开头,且å?Žé?¢ç´§è·Ÿx时,按照parseInt(string, 16)处ç?†

  • 当string以0开头,且å?Žé?¢ç´§è·Ÿé?žx时,按照parseInt(string, 8)处ç?†

  • 其余统一按照parseInt(string, 10)处ç?†

当然强烈建议始终使用radix�数

 

按照上�的解�规则,parseInt('010')很自然应该返回8 ,�过奇怪的是Chorme返回的居然是10,难�最新版Chrome改掉了以�默认的转�规则?

晚上回家�拿Chrome 24.0.1312.56试了一下,�现结果也是一样的(没有更早的版本了),看�Chrome改掉这个规则已��是一两天了,�知其他�览器会�会效仿。。。


最���这赶脚,��微回顾一下parseInt和parseFloat转�数字上的区别:

  • parseFloatå?ªèƒ½è½¬æ?¢10进制,而parseInt则支æŒ?第二个å?‚æ•°parseInt(string[, radix]),ç?†è®ºä¸Šæ”¯æŒ?ä»»æ„?进制的数字

  • parseIntä¸?能转æ?¢ç§‘学计数parseInt('1e2');//1,parseFloat('1e2');//100

  • parseInt无法转æ?¢çœ?ç•¥å°?数点å‰?é?¢0çš„æ•°å­—parseInt('.1');//NaN,parseFloat('.1');//0.1

共0评论

�表评论

  • [URL] [URL2] [EMAIL] [QUOTE] UBB表情 [B] [I] [S] [U]

最新评论�回�

    loading

最近�表

    loading

网站分类

    loading

文章归档

    loading

�情链接

Top Comments Footer