【发布时间】:2016-08-28 11:27:15
【问题描述】:
var x = 010;
console.log(x); //8
JS 引擎将数字x 转换为八进制数字。为什么会发生?如何预防?
【问题讨论】:
-
@Andy - 10,而不是 8。他问为什么在数字前加上 0 会使它假定它是八进制。我不怪他问。
-
以 0 开头的文字数值总是被解释为八进制值。
-
哈,是的,我没有正确地问这个问题。我知道为什么它将它记录为八进制,我只是想知道 10 是否是 OP 的预期输出。
-
这是严格模式下禁止的非标准做法。见Leading zero in javascript
-
如果我们在一个数字前面加上 0x 那么它也会把这个数字转换成十六进制
标签: javascript