2013-04-10 48 views
4

我写了从001到0010以及更多像这样的数字,在Chrome控制台和Fire Fox中以“00”开头,即使在IE中也得到了这个结果。为什么在JavaScript中0010等于8?

为什么0010不等于10? 或为什么0020不等于20?它是“16”。

+4

这是因为它是一个八进制。 – adeneo 2013-04-10 12:32:18

+0

'为什么0010不等于10?或者为什么0020不等于20?它是“16”。“因为这些数字是基于8(八进制)。 – christopher 2013-04-10 12:32:52

+2

阅读[radix](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt)。 – jbabey 2013-04-10 12:33:00

回答

6

前导零表示应该将数字解释为八进制数。

因此10解释为八进制等于8十进制。

欲了解更多信息,请参阅MDN on number literals。在Javascript

3

“数字常数被认为是八进制如果它们通过前面零,并且是缺点如果它们前面有一个零和和x(0x),则表示为十六进制。“ (如解释here

008不被视为八进制,因为它包含不是八进制数的“8”。 0010实际上是八进制数并且等于8.

3

因为前导0代表Octal号码系统。同样,如果您键入0x010,它将等于16,因为0x是Hexadecimal数字系统的前缀。

相关问题