Javascript eval(0047)返回39

时间:2015-01-30 16:12:21

标签: javascript eval

为什么eval(0047)的值为39? (047和00047产生相同的结果)

为什么eval(056)的值为46?

但是...... eval(0048)返回值48,正如预期的那样!

它显然与前导零有关,但我无法弄明白,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

您不需要eval,您只需要一个以0开头的整数字面值,并且JS中没有数字大于7,以便您看到console.log(011) // 9 console.log(0xcd) // 205 3}}。例如:

{{1}}

同样适用于an octal literal value

{{1}}

另请参阅MDN上的hexadecimal部分。

答案 1 :(得分:1)

它是八进制,基数为8.这是“8”的地方,而不是“10”的地方。

4 * 8 = 32 + 7 = 39。