我写的从001到0010以及更多这样的数字,在Chrome控制台和Fire Fox中以“00”开头,甚至在IE中也得到了这个结果。
为什么0010不等于10? 或为什么0020不等于20?它是“16”。
答案 0 :(得分:6)
答案 1 :(得分:3)
Javascript中的数字文字可以在不同的基础上输入 -
前导零表示数字是八进制数字(仅数字0-7)所以010与以下相同:一次8 +零
文字0x10是十六进制(基数为16)所以等于:一次16 +零)= 16
见https://developer.mozilla.org/en/docs/JavaScript/Guide/Values,_variables,_and_literals
答案 2 :(得分:3)
“如果数字常量前面有零,则它们被视为八进制,如果它们前面有零和x(0x),则被视为十六进制。” (正如here所述)
008不被视为八进制,因为它包含的“8”不是八进制数。 0010实际上是一个八进制数,等于8.
答案 3 :(得分:3)
因为前导0代表Octal数字系统。同样,如果您键入0x010,它将等于16,因为0x是Hexadecimal数字系统的前缀。