为什么parseInt('08')给出0,而parseInt('07')给出7

Bri*_*rij 15 javascript parseint

可能重复:
JavaScript parseInt八进制错误的变通方法

我正在研究javascript,我似乎发现这很奇怪,javascript函数parseInt('08')返回0而parseInt('07')返回7.

这种行为似乎在Firefox中存在.

parseInt('08')在IE中返回8,但在Firefox中返回0 ..

为什么?我希望parseInt('08')按预期返回8,并进入IE.

Ace*_*ban 32

是的,我之前遇到过这个.这真的很奇怪,因为有些浏览器会将其解释为您希望在基数8中解析它.请考虑以下文章:

http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C85006A6604

基本上,你必须告诉解析器使用基数为10的数字:

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

  • `parseInt('08','10');`?真?通常我们只会做`+"08"`,因为在String前添加`+`会把它变成Number而没有任何问题. (3认同)