Javascript int数字添加问题

0 javascript

我在javascript中有从01(int)到09(int)的数字,我想为每一个添加1(int).

例如:

01 + 1 = 2
02 + 1 = 3
Run Code Online (Sandbox Code Playgroud)

08 + 1 = 1
09 + 1 = 1
Run Code Online (Sandbox Code Playgroud)

我知道解决方案.我把它们定义为float类型.

但我想知道,这个结果的原因是什么?

谢谢.

pax*_*blo 8

与其他语言一样,Javascript可以0将以八进制开头的数字视为对象.这意味着只有数字0到7才有效.

似乎正在发生的是,08并且09被视为八进制,但由于它们具有无效字符,因此这些字符被默默地忽略.所以你实际计算的是0 + 1.

或者,可能是整个08被忽略并0取而代之.

最好的方法是尝试028 + 1看看你是否得到31(或者甚至可能是30解释真的很奇怪).