加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

[笔记]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

 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读