奇怪的输出结果

时间:2015-11-03 12:07:52

标签: javascript

我正在javascript编程中训练自己,并且无法理解2个结果的输出,例如:

1) var num = 1;
var result = num++ * 10 +1;
console.log(result);

我认为输出将是' 21'因为它是增加1值到num并且mutplications总是第一个计算,但是我注意到结果是11,比我想象那是因为num是不可变的(不确定)。

比我看这个功能:

function A(param){
        var m = param;
        m = m+10;
        return m;
    }
    console.log(A(10));

该功能的结果是20。

这让我很困惑,我无法理解出了什么问题,有人能解释我刚刚发生了什么事吗?

2 个答案:

答案 0 :(得分:2)

嗯,问题是num++在递增之前返回num的值。实际上你的表达式如下:1 * 10 + 1

您应该使用++num,此语句将在递增后返回num的值:

var result = ++num * 10 + 1; // 21

答案 1 :(得分:0)

num不是一成不变的。

m++的输出为m(增加之前的值)。如果您想要增量后的值,请使用++m

var num = 1;
console.log(++num);

给出2,而

var num = 1;
console.log(num++);

给出1