Nav*_*utt 8 javascript parsing
为什么这种行为parseInt()与parseFloat()?之间存在差异?
我有一个包含08在其中的字符串.
当我写这段代码时:
alert(hfrom[0]);
alert(parseInt(hfrom[0]));
alert(parseFloat(hfrom[0]));
Run Code Online (Sandbox Code Playgroud)
生成以下输出:
08
0
8
Run Code Online (Sandbox Code Playgroud)
为什么parseInt和parseFloat在这种情况下返回两个不同的结果?
Pau*_*aul 10
parseInt()根据字符串中的第一个字符假定您的号码的基数.如果以它开头,0x它假定为16(十六进制).否则,如果以它开头,0它假定为基数8(八进制).否则它假定为10.
您可以将基数指定为第二个参数:
alert(parseInt(hfrom[0], 10)); // 8
Run Code Online (Sandbox Code Playgroud)
来自MDN(上面链接):
如果radix未定义或为0,则JavaScript假定以下内容:
如果输入字符串以"0x"或"0X"开头,则基数为16(十六进制).如果输入字符串以"0"开头,则基数为8(八进制).此功能是非标准的,有些实现故意不支持它(而是使用基数10).因此,在使用parseInt时始终指定基数.如果输入字符串以任何其他值开头,则基数为10(十进制).
| 归档时间: |
|
| 查看次数: |
8940 次 |
| 最近记录: |