关于javascript中parseInt函数的一个所谓的bug
2005-12-30 14:59
543 查看
最近我正在升级一个日历控件,出现了一些莫名其妙的错误,最后发现原来是一个parseInt函数的一个所谓的bug引起的,就是在 parseInt("08") 和 parseInt("09") 处理时返回的居然都是 0 ,而 parseFloat函数就没有这样的错误,没办法,我将所有用到parseInt函数的地方都改成了parseFloat函数。
最后经过测试才发现,原来当前面有0的时候,parseInt默认把它当作八进制处理了,01--07自然没有问题,但是09,08都是不合格的八进制形式,所以被按照0处理了。为了解决这个问题,可以利用parseInt函数的另一个参数,显示的告诉parseInt按照十进制处理。例如 我们可以这样 parseInt("08",10) 或者 parseInt("09",10)。这样就不会有问题了。所以说这个所谓的bug不应该称其为一个bug,只不过我们对其不甚了解,忽略了一个重要的参数,才出现了这个让我们头疼的情况。。。。。
最后经过测试才发现,原来当前面有0的时候,parseInt默认把它当作八进制处理了,01--07自然没有问题,但是09,08都是不合格的八进制形式,所以被按照0处理了。为了解决这个问题,可以利用parseInt函数的另一个参数,显示的告诉parseInt按照十进制处理。例如 我们可以这样 parseInt("08",10) 或者 parseInt("09",10)。这样就不会有问题了。所以说这个所谓的bug不应该称其为一个bug,只不过我们对其不甚了解,忽略了一个重要的参数,才出现了这个让我们头疼的情况。。。。。
相关文章推荐
- 关于javascript中parseInt函数的一个所谓的bug
- Javascript 函数parseInt()转换时出现bug问题
- Javascript 函数parseInt()转换时出现bug
- 关于 javascript event flow 的一个bug
- 关于javascript event flow 的一个bug详解
- Javascript 函数parseInt()转换时出现bug问题
- 不要使用JavaScript内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数:
- javascript关于parseInt("08")返回0的一个常识问题
- 关于javascript parseInt函数的问题
- 暴汗,关于javascript的parseInt()的一个问题
- 实践中Javascript使用RegExp.$1导致trim()自定义函数的一个Bug
- 关于javascript event flow 的一个bug详解
- 关于javascript parseInt函数
- 关于 javascript event flow 的一个bug
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- 关于JavaScript parseInt() 函数
- Myeclipse10.0关于javascript的一个错误提示的Bug:Cannot return from outside a function or method
- 关于理解Perl的fork函数的一个范例
- javascript中如何让类工厂和构造函数变成同一个函数
- 关于c语言的一个小bug(c专家编程)