【问题标题】:why does console.log(0123); log 83?为什么 console.log(0123);记录 83?
【发布时间】:2018-02-26 01:06:55
【问题描述】:

为什么console.log(0123); 记录整数。 83?我不知道为什么它会,也没有真正的想法。

【问题讨论】:

标签: javascript console console.log


【解决方案1】:

因为它被解释为八进制数,而八进制 123 对应十进制 83 (64 + 16 + 3)。

来自MDN

在整数文字上前导 0(零),或前导 0o(或 0O) 表示它是八进制的。八进制整数只能包含数字 0-7.

【讨论】:

  • 只有在前面有一个0或者每个整数都有一个0的时候?
  • 仅当前面有00o0O 时。
  • 请注意,在严格模式下,您将得到 SyntaxError: Octal literals are not allowed in strict mode. 对应文字 0123,但 不是 对应 0o123
【解决方案2】:

因为整数前面的 0(零)0o 或 0O 表示八进制数!!

如今八进制编号系统使用较少,几乎已作为数字基数系统消失。十六进制编号系统现在很流行!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    相关资源
    最近更新 更多