我是JavaScript编程的初学者,当我检查parseInt(),即将字符串转换为整数时,我得到了一些不同的输出。
var temp = 030;
document.writeln(" temp value after parseInt is =" + parseInt(temp));
output : temp value after parseInt is =24
我没有找到它显示24的原因。你可以帮助我吗?感谢
答案 0 :(得分:2)
原因是因为它被视为八进制格式。请注意,如果字符串以“0x”开头,则基数为16(十六进制),如果字符串以“0”开头,则基数为8(八进制)。
要获得正确的输出,请尝试这样:
alert(parseInt('030',10));
答案 1 :(得分:1)
因为你的前缀为0所以它将被解释为八进制数
所以030将被转换为十进制,即24
答案 2 :(得分:1)
ParseInt是一种将字符串转换为数字的方法。 您可以在parseInt中添加第二个参数来加速数学基础。
例如:
parseInt('030',10)
如果radix未定义或0(或不存在),则JavaScript假定以下内容:
如果输入字符串以" 0x"开头?或" 0X",基数为16(十六进制),并解析字符串的其余部分。
如果输入字符串以" 0"开头,则基数为八(八进制)或十进制(十进制)。究竟选择哪个基数是依赖于实现的。 ECMAScript 5指定使用10(十进制),但并非所有浏览器都支持此功能。因此,在使用parseInt时始终指定基数。
如果输入字符串以任何其他值开头,则基数为10(十进制)。
答案 3 :(得分:0)
你的意思是?:
var temp = '030';
document.writeln(" temp value after parseInt is =" + parseInt(temp));