我从eval
函数获得意外结果。
alert(eval(1 + 033))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
如果我执行eval(1 + 033)
,则会将结果显示为28
。
有谁知道为什么会这样?如何才能将033
视为数字33
并生成34
作为结果?
答案 0 :(得分:2)
033
是(十进制)27
所以eval(1+033)
eval(1+27)
eval(28)
28
是Reload data button
答案 1 :(得分:2)
如果您的字符串包含前导零的数字,并且您希望将该数字视为小数(base-10),则可以使用parseInt将10作为第二个参数。
parseInt(string, radix);
var str = "033";
var x = parseInt(str, 10);
console.log(x + 1);