【发布时间】:2015-03-30 04:09:46
【问题描述】:
为什么 eval(0047) 返回值 39? (047 和 00047 产生相同的结果)
为什么 eval(056) 返回值 46?
但是...eval(0048) 返回值 48,正如预期的那样!
这显然与前导零有关,但我无法弄清楚,任何帮助将不胜感激。
【问题讨论】:
标签: javascript eval
为什么 eval(0047) 返回值 39? (047 和 00047 产生相同的结果)
为什么 eval(056) 返回值 46?
但是...eval(0048) 返回值 48,正如预期的那样!
这显然与前导零有关,但我无法弄清楚,任何帮助将不胜感激。
【问题讨论】:
标签: javascript eval
您不需要eval,您只需要一个以0 开头的整数文字,并且其中没有大于7 的数字让JS 看到您正在表达an octal literal value。例如:
console.log(011) // 9
同样适用于hexadecimal:
console.log(0xcd) // 205
另请参阅 MDN 上的 Integers 部分。
【讨论】:
它是八进制,以 8 为底。4 是“8”位,而不是“10”位。
4 * 8 = 32 + 7 = 39。
【讨论】: