如果前置零(0),EVAL功能显示意外结果

时间:2017-07-19 20:37:22

标签: javascript jquery

我从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作为结果?

2 个答案:

答案 0 :(得分:2)

033是(十进制)27

八进制表示

所以eval(1+033) eval(1+27) eval(28) 28Reload data button

答案 1 :(得分:2)

如果您的字符串包含前导零的数字,并且您希望将该数字视为小数(base-10),则可以使用parseInt将10作为第二个参数。

parseInt(string, radix);

var str = "033";
var x = parseInt(str, 10);
console.log(x + 1);