[笔记]parseInt在IE8下的异常
发布时间:2020-12-15 01:18:52 所属栏目:C语言 来源:网络整理
导读:在改bug时,偶遇使用parseInt的一个小问题。 一、问题内容 if (parseInt(str) == num) { // ...} 代码中的大意是这样的,这个bug是提在IE8下,定位时并没有快速定位到parseInt上,直到打印结果才发现此处有问题。 当str是08时,parseInt的结果居然是0,所以
在改bug时,偶遇使用parseInt的一个小问题。 一、问题内容if (parseInt(str) == num) { // ... } 代码中的大意是这样的,这个bug是提在IE8下,定位时并没有快速定位到parseInt上,直到打印结果才发现此处有问题。 当str是’08’时,parseInt的结果居然是0,所以出现了问题。 尝试发现,在IE8下’08’、’09’都会变成0。是因为,以0开头的数字型字符串在转化时,IE8会识别成八进制,0x会被识别为十六进制。因为八进制下8和9是不存在的,所以返回了0。 此时的处理方式可以为: parseInt('08',10); // 8 parseInt('010',10); // 10
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |