【问题标题】:Strange Output results奇怪的输出结果
【发布时间】:2015-11-03 12:07:52
【问题描述】:

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

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

起初我认为输出将是“21”,因为它是对 num 递增 1 的值,并且重复总是第一个计算,但我注意到结果是 11,比我想象的要多,因为 num是不可变的(不确定)。

比我看来这个功能:

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

函数的结果是20。

这让我很困惑,我无法理解出了什么问题,有人可以解释一下刚刚发生的事情吗?

【问题讨论】:

标签: javascript


【解决方案1】:

嗯,问题是num++ 在增加之前返回num 的值。其实你的表情是这样的:1 * 10 + 1

你应该使用++num,这个语句会返回num的值,它会自增:

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

【讨论】:

    【解决方案2】:

    num 不是不可变的。

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

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

    给出2,而

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

    1

    【讨论】:

      猜你喜欢
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 2013-08-20
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多