当数字有前导零时会发生什么?

3

我今天一直在尝试调试一个问题,最终我找到了问题所在。由于某种原因,在JavaScript中,当一个数字有前导零时会发生一些非常奇怪的事情。

例如:

alert(132);
alert(0132);

var test = 0132;
alert(test);

JSFiddle: http://jsfiddle.net/U8sFu/3/

第一个弹出框显示“132”,第二个显示“90”,第三个也是“90”。

我的问题是,为什么数字0132会变成数字90?这真的让我困惑!

1个回答

6

我不知道这个...我本来要说90是0132的八进制等价物。今天我学到了。谢谢 :) - brbcoding
谢谢!我一度以为自己疯了:-) 显然,这种极不直观的行为将在JavaScript 5中被移除:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt#ECMAScript_5_Removes_Octal_Interpretation - Nate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接