Javascript parseInt方法中的错误?
可能重复:Javascript parseInt方法中的错误?,javascript,html,css,Javascript,Html,Css,可能重复: 使用parseInt方法分析字符串会返回无效的输出 代码: parseInt("08"); 例外输出: 8 实际产出: 0 代码[这将正确返回输出]: parseInt("8") 输出: 8 为什么会发生这种情况?您需要指定基数: parseInt("08",10); //=>8 否则JavaScript不知道您使用的是十进制、十六进制还是二进制。 (如果使用parseInt,这是您应该始终使用的最佳实践。)您需要指定基数: parseInt("08",10);
使用parseInt方法分析字符串会返回无效的输出 代码:
parseInt("08");
例外输出:
8
实际产出:
0
代码[这将正确返回输出]:
parseInt("8")
输出:
8
为什么会发生这种情况?您需要指定基数:
parseInt("08",10); //=>8
否则JavaScript不知道您使用的是十进制、十六进制还是二进制。
(如果使用parseInt,这是您应该始终使用的最佳实践。)您需要指定基数:
parseInt("08",10); //=>8
否则JavaScript不知道您使用的是十进制、十六进制还是二进制。
(如果您使用parseInt,这是您应该始终使用的最佳实践。)您应该告诉parseInt它基于10的:
parseInt("08", 10);
如果省略基数参数,JavaScript将假定以下情况:
如果字符串以“0x”开头,则基数为16(十六进制)
如果字符串以“0”开头,则基数为8(八进制)。此功能是
不推荐使用如果字符串以任何其他值开头,则基数为10
(十进制)
您应该告诉parseInt其基于10的:
parseInt("08", 10);
如果省略基数参数,JavaScript将假定以下情况:
如果字符串以“0x”开头,则基数为16(十六进制)
如果字符串以“0”开头,则基数为8(八进制)。此功能是
不推荐使用如果字符串以任何其他值开头,则基数为10
(十进制)
另请参见:
parseInt("08", 10); // base 10
与往常一样,MDN是一个很好的信息来源:
前导零的字符串通常被解释为八进制值。因为八进制意味着只有0-7之间的数字才有意义,“08”被转换成“0”。指定修复此问题的基础:
parseInt("08", 10); // base 10
与往常一样,MDN是一个很好的信息来源:
简单的谷歌搜索也可以解决这个问题:谷歌搜索你确切的问题标题也可以找到答案……简单的谷歌搜索也可以解决这个问题:谷歌搜索你确切的问题标题也可以找到答案。。。