【问题标题】:Javascript eval(0047) returns 39 [duplicate]Javascript eval(0047) 返回 39 [重复]
【发布时间】:2015-03-30 04:09:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript eval


    【解决方案1】:

    您不需要eval,您只需要一个以0 开头的整数文字,并且其中没有大于7 的数字让JS 看到您正在表达an octal literal value。例如:

    console.log(011) // 9
    

    同样适用于hexadecimal

    console.log(0xcd) // 205
    

    另请参阅 MDN 上的 Integers 部分。

    【讨论】:

    • 啊哈现在说得通了,谢谢!
    【解决方案2】:

    它是八进制,以 8 为底。4 是“8”位,而不是“10”位。

    4 * 8 = 32 + 7 = 39。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      相关资源
      最近更新 更多