javascript"parseInt()"的问题

jdb*_*org 8 javascript

可能重复:
JavaScript parseInt八进制bug的变通办法
如何解析前导为0的字符串

document.write(parseInt("07"));
Run Code Online (Sandbox Code Playgroud)

产生"7"

document.write(parseInt("08"));
Run Code Online (Sandbox Code Playgroud)

产生"0"

这对我来说是个问题(抱歉这个唠叨,我必须或者我不能提交问题).任何人都知道为什么它是愚蠢的或者是否有更好的功能?

Den*_*nis 15

如果参数以0开头,则它将被解析为八进制,而08不是有效的八进制数.提供第二个参数10,指定基数 - 基数为10的数字.

document.write(parseInt("08", 10));
Run Code Online (Sandbox Code Playgroud)


Mar*_*era 6

使用此修改

parseInt("08",10);
Run Code Online (Sandbox Code Playgroud)

规则 parseInt(string, radix)

如果省略radix参数,则JavaScript假定以下内容:

  • 如果字符串以"0x"开头,则基数为16(十六进制)
  • 如果字符串以"0"开头,则基数为8(八进制).此功能已弃用
  • 如果字符串以任何其他值开头,则基数为10(十进制)