【发布时间】:2015-06-08 16:11:34
【问题描述】:
这是一个小的 JavaScript。我从函数中得到了意想不到的结果。 020*2 给出 32 而不是 40。有人知道如何解决这个问题吗?
function myFunction(a, b) {
return a * b;
}
document.write('04 * 03 = ');
document.write(myFunction(04, 03)); //Result 12, correct
document.write(' << Correct <br/>020 * 02 = ');
document.write(myFunction(020, 02)); //Result 32, wrong - expected result 40
document.write(' << Expected 40 here');
【问题讨论】:
-
020 是八进制 20。也就是 16。
-
这是因为以 0 开头的数字被视为八进制:stackoverflow.com/questions/12888075/…
-
@Jonathan.Brink 任何以零开头且没有任何 8 或 9 的数字。
08 == 8 -
@JuanMendes 感谢您的澄清
标签: javascript