JS的ParseInt()函数错误
来源:互联网 发布:网络用语gb是什么意思 编辑:程序博客网 时间:2024/05/15 01:19
今天测试提一个BUG,但凡以0开头,后面接8或9的数字,系统js都给出0的结果,最后追查,认为问题可能出在parseInt(),于是上网查了一下,发现果然有'BUG'在里面。
其实parseInt()有两个参数:parseInt(number,type),type是指要转换的进制。当你没有指定type时,一般默认是10进制,但是如果number以0开头则不同了:
如果,number以0x开头,则type默认是十六进制。
如果,number以0开头,后面是数字,则默认是八进制,但是8、9不是八进制数,所以就为0了。
当然还有,0x开头除外,number中有其他字母转换就会提前结束。
这样,举几个例子:
parseInt('100') = parseInt('100',10) = 100
parseInt('100a') = parseInt('100',10) = 100
parseInt('0100') = parseInt('100',8) = 64
parseInt('0x100') = parseInt('100',16) = 256
parseInt('089') = parseInt('89',8) = 0
这个'BUG'在IE7/8存在,IE9/10没有,估计是IE给优化了。
- JS的ParseInt()函数错误
- JS的parseInt函数
- 关于js的parseInt() 函数
- JS中parseInt函数的一个问题
- JS中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- js函数 Number()、parseInt()、parseFloat()的区别:
- 浅谈 js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- js中parseInt函数的解析
- 浅谈 js中parseInt函数的解析
- js函数 Number()、parseInt()、parseFloat()的区别:
- C#报表控件ReportViewer的使用
- 相似图片搜索的原理(一)
- nodejs提交form表单并将提交信息显示在页面上
- JSP 2.0 web.xml不再直接支持<taglib>标签配置
- 等整理
- JS的ParseInt()函数错误
- 使用Eclipse开发php应用,中文提示乱码的解决办法
- First Missing Positive
- C#清除IE临时文件
- 数据仓库维度建模笔记
- 庞胡瑞:地方舆情管理要抢滩微信舆情
- windows live writer 安装配置以及发布文章
- Android中的定时器AlarmManager
- Linux USB驱动框架分析