答案 0 :(得分:20)
以0
开头的字符串的基数可以是八进制(未指定基数时 - 取决于浏览器)。
您正在寻找:
parseInt("09", 10)
请参阅parseInt
的文档:
如果radix未定义或为0,则JavaScript假定以下内容:
- 如果输入字符串以“0x”或“0X”开头,则基数为16(十六进制)。
- 如果输入字符串以“0”开头,则基数为8(八进制)。此功能是非标准的,有些实现故意不支持它(而是使用基数10)。因此,在使用parseInt时始终指定基数。
- 如果输入字符串以任何其他值开头,则基数为10(十进制)。
radix
可选参数(我的示例中的第二个)的注释说明了这一点:
虽然此参数是可选的,但始终指定,以消除读者混淆并保证可预测的行为。
答案 1 :(得分:1)
前导0表示煤价" 020"是16岁," 07"是7,没有数字" 9"在八进制系统中,因此没有转换!
使用parseInt(" 09",10)获取值9。