鉴于您有以下JavaScript代码段:
<script>
var x = 013;
console.log(x);
</script>
为什么Firebug会打印11
?
答案 0 :(得分:4)
JavaScript支持与C和Java(等人)相同的数字常量约定,因此前导零使得八进制常量。 (基数8中的“13”是8 + 3,或11。)
答案 1 :(得分:3)
它的八进制值。所以1 * 8 ^ 1 + 3 * 8 ^ 0 = 11
答案 2 :(得分:2)
因为您指定了八进制数,但它显示了十进制表示。
答案 3 :(得分:1)
它将它解释为八进制。从零开始的任何数字都被解释为八进制(基数8)字面值,八进制13 = 8 * 1 + 3 = 11十进制数。
另外,好的头衔。
答案 4 :(得分:1)
它被解释为基数8.而基数8中的013是十进制的11。
在javascript中,以0dd或-0dd开头并且不是0xdd或-0xdd的常数被解释为八进制(基数为8)。
您可以在第231页的ECMAScript specification中看到它。
答案 5 :(得分:1)
013
是八进制常量 - 它在基数8中解释.1·8 + 3·1 = 8 + 3 = 11