【问题标题】:Understanding number bases in javascript [duplicate]了解javascript中的数字基础[重复]
【发布时间】:2011-12-09 15:15:09
【问题描述】:

可能重复:
Leading zero in javascript

假设你有以下 JavaScript sn-p:

<script>
   var x = 013;
   console.log(x);
</script>

为什么 Firebug 会打印 11

【问题讨论】:

标签: javascript integer


【解决方案1】:

JavaScript 支持与 C 和 Java(等)相同的数字常量约定,因此前导零使其成为八进制常量。 (以 8 为底的“13”是 8 + 3,即 11。)

【讨论】:

  • 另外,Pointy 永远是对的。
  • @karim79:不用说。 Pointy 是摇滚明星!
  • 天哪,你们。我太老了,不能成为摇滚明星 :-)
  • @Ӫ_._Ӫ - 我也是摇滚明星!
  • @karim79:是的,你是,但当你被辛普森化时,你是一个超级摇滚明星。 ;)
【解决方案2】:

它的八进制值。所以它 1*8^1 + 3*8^0=11

【讨论】:

    【解决方案3】:

    因为您指定了一个八进制数,但它显示的是十进制表示。

    【讨论】:

      【解决方案4】:

      它将它解释为八进制。任何以零开头的数字都被解释为八进制(以 8 为基数)字面量,并且八进制 13 = 8*1+3 = 十进制。

      还有,好标题。

      【讨论】:

        【解决方案5】:

        013 是一个 八进制 常量 - 它以 8 为基数解释。1·8 + 3·1 = 8 + 3 = 11

        【讨论】:

          【解决方案6】:

          它被解释为以 8 为底。以 8 为底的 013 是十进制的 11。

          在 javascript 中,以 0dd 或 -0dd 开头且不是 0xdd 或 -0xdd 的常数被解释为八进制(以 8 为基数)。

          您可以在第 231 页的ECMAScript specification 中看到它的描述。

          【讨论】:

            猜你喜欢
            • 2012-05-28
            • 2011-06-14
            • 2017-04-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-12
            • 1970-01-01
            相关资源
            最近更新 更多