我收到eval
函数的意外结果。EVAL函数显示意外的结果,如果前置零(0)
alert(eval(1 + 033))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
如果我执行eval(1 + 033)
它显示的结果为28
。
有谁知道为什么会发生这种情况?我怎样才能把它作为33
作为033
,并产生34
?
我收到eval
函数的意外结果。EVAL函数显示意外的结果,如果前置零(0)
alert(eval(1 + 033))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
如果我执行eval(1 + 033)
它显示的结果为28
。
有谁知道为什么会发生这种情况?我怎样才能把它作为33
作为033
,并产生34
?
如果你有一个包含带有前导零的数字的字符串,你想要的号码的八进制表示被视为十进制(base-10),您可以使用parseInt提供10作为第二个参数。
parseInt(string, radix);
var str = "033";
var x = parseInt(str, 10);
console.log(x + 1);
貌似正确的结果给我。 –
@kevin:我可以给你发送截图。它显示28.我还检查了其他机器。要求你分享你的片段。 – sAcH
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Numbers_and_dates#Octal_numbers –