当我传递一个前导零的字符串时,为什么parseInt()会返回意外的结果?

Ser*_*lov 10 javascript

parseInt('1') = 1
parseInt('01') = 1
parseInt('5') = 5
parseInt('05') = 5
parseInt('8') = 8

但为什么:
parseInt('08') = 0
parseInt('09') = 0

Jon*_*øgh 11

始终使用将基数作为第二个参数的重载:

parseInt('011',10) = 11
Run Code Online (Sandbox Code Playgroud)


Kar*_*ath 9

这是一个提示:

parseInt('011') = 9
Run Code Online (Sandbox Code Playgroud)

如果它从0开始,则将其解析为八进制数.


Pri*_*ley 8

0(不0x)开头的数字是八进制数.因此,89是不是有效的八进制数.