Javascript eval(0047) returns 39

Javascript eval(0047) returns 39

本文关键字:returns 0047 eval Javascript      更新时间:2023-09-26

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

为什么 eval(056) 返回值 46?

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

这显然与前导零有关,但我无法弄清楚,任何帮助将不胜感激。

你不需要

eval,你只需要一个以 0 开头的整数文字,其中没有数字大于 7,JS 可以看到你正在表达一个八进制文字值。例如:

console.log(011) // 9

同样,对于十六进制:

console.log(0xcd) // 205

另请参阅 MDN 上的整数部分。

它是八进制,以 8 为基数。4 是"8"的地方,而不是"10"的地方。

4 * 8 = 32 + 7 = 39。