理解 javascript 中的数基

发布于 2024-12-10 13:47:53 字数 345 浏览 0 评论 0原文

可能的重复:
javascript 中的前导零

假设您有以下 JavaScript 代码段:

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

为什么 Firebug 会打印 11 ?

Possible Duplicate:
Leading zero in javascript

Given you have the following JavaScript snippet:

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

Why is it that Firebug prints 11?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

你是我的挚爱i 2024-12-17 13:47:53

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

JavaScript supports the same convention for numeric constants as C and Java (et al), so the leading zero makes that an octal constant. ("13" in base 8 is 8 + 3, or 11.)

半岛未凉 2024-12-17 13:47:53

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

Its octal value. So it 1*8^1 + 3*8^0=11

拥有 2024-12-17 13:47:53

因为您指定了八进制数,但它显示了其十进制表示形式。

Because you've specified an octal number, but it displays its decimal representation.

等风来 2024-12-17 13:47:53

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

另外,标题好。

It's interpreting it as octal. Any number that begins in zero is interpreted as an octal (base 8) literal, and octal 13 = 8*1+3 = 11 decimal.

Also, good title.

浪漫人生路 2024-12-17 13:47:53

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

013 is an octal constant - it's interpreted in base 8. 1·8 + 3·1 = 8 + 3 = 11

痴情换悲伤 2024-12-17 13:47:53

它被解释为基数 8。基数 8 中的 013 是十进制 11。

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

您可以在 ECMAScript 规范(第 231 页)。

It is being interpreted as base 8. And 013 in base 8 is 11 decimal.

In javascript, constant numbers that begin with 0dd or -0dd and are not 0xdd or -0xdd are interpreted as octal (base 8).

You can see it described in the ECMAScript specification on page 231.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文