javascript关于parseInt("08")返回0的一个常识问题
2013-07-28 22:39
232 查看
在应用时间控件中只用月份的时候,发现的一个bug,以前用这个函数的时候也没注意,在此记录一下!
这是一个很低级的bug,以前写的时候没注意,以前有看过书中说要:parseInt(string,radix).
使用parseInt()转换“01”~“07”都ok,但是parseInt("08") 那就有问题了,返回0,为啥,把它当成8进制来处理了
以“0x”开头,parseInt()会把string除0x外的其余部分当作十六进制
以“0”开头,parseInt() 会把string除0 以外的字符当作八进制或十六进制数
以1~9的数字开头,parseInt()将把它当作十进制数
所以为了避免这种错误,最好的方法是parseInt("08",10) 标明10进制就好了,也就避免这种错误。
这是一个很低级的bug,以前写的时候没注意,以前有看过书中说要:parseInt(string,radix).
使用parseInt()转换“01”~“07”都ok,但是parseInt("08") 那就有问题了,返回0,为啥,把它当成8进制来处理了
以“0x”开头,parseInt()会把string除0x外的其余部分当作十六进制
以“0”开头,parseInt() 会把string除0 以外的字符当作八进制或十六进制数
以1~9的数字开头,parseInt()将把它当作十进制数
所以为了避免这种错误,最好的方法是parseInt("08",10) 标明10进制就好了,也就避免这种错误。
相关文章推荐
- JavaScript中的坑---parseInt("08")和返回0
- javascript---parseInt("08")或parseInt("09")转换返回0的解决办法
- javascript---parseInt("08")或parseInt("09")转换返回0的解决办法
- 暴汗,关于javascript的parseInt()的一个问题
- JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
- 一个关于curl post提交返回数据的问题1
- 关于JavaScript处理时间跨度差问题的一个小细节
- 关于(javascript) "if"关键字的一个疑惑的地方
- 请教一个关于javascript执行sql语句的问题
- 一个关于curl post提交返回数据的问题
- JavaScript中记一个关于对象属性赋值的小问题
- 一个关于GetSubMenu函数返回0的问题
- C# 关于out关键字的用法(一个方法返回多个值的问题)
- 工作中遇到的一个相当有意思的问题(关于Windows和linux环境下执行PHP,ajax,javascript,flexigrid的一个莫名异常)
- 请教关于ASP.Net2.0和JavaScript的一个问题
- 关于他们回答的 "怎样在桌面建一个python GUI的快捷方式" 这个问题
- JS:parseInt("08")或parseInt("09")转换返回0的原因
- 有关js parseInt("08")问题
- 关于系统(ios7+)自带的向右滑动手势返回上一个界面的一个问题
- Js中的天坑----JS:parseInt("08")和“09”返回0