这里非常困惑.
parseInt("09")= 0
但
parseInt("9")= 9
为什么前缀为零不仅被剥离了?
警报(parseInt函数( "01")); = 1
.. 愤怒退出
Cip*_*ipi 19
因为默认情况下将其视为八进制格式.如果你想获得9,你必须添加你想要的数字基数,那就是10,而不是8(对于八进制),所以调用:
parseInt("09", 10);
A.7.parseInt函数
parseInt是一个将字符串转换为整数的函数.它停止时,看到一个非数字,因此
parseInt("16")
并parseInt("16 tons")
产生相同的结果.如果函数以某种方式通知我们有关额外文本的信息会很好,但事实并非如此.
如果字符串的第一个字符是0,则该字符串被在底座8,而不是基座10评估在基座8,图8和9不是数字,所以parseInt("08")
并parseInt("09")
产生0作为它们的结果.此错误会导致解析日期和时间的程序出现问题.幸运的是,parseInt可以使用基数参数,因此
parseInt("08", 10)
产生8.我建议您始终提供基数参数.
"JavaScript:Douglas Crockford撰写的好文章.版权所有2008 Yahoo! Inc.,978-0-596-51774-8."
原因如下:
If the string begins with "0x", the radix is 16 (hexadecimal)
If the string begins with "0", the radix is 8 (octal). This feature is deprecated
If the string begins with any other value, the radix is 10 (decimal)
Run Code Online (Sandbox Code Playgroud)
http://www.w3schools.com/jsref/jsref_parseInt.asp
做
parseInt("09", 10)
Run Code Online (Sandbox Code Playgroud)
指定基数10.
编辑:为了澄清,前缀为零的数字将被假定为八进制表示法,而"09"不是有效的八进制数.
归档时间: |
|
查看次数: |
9914 次 |
最近记录: |