我正在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。
这让我很困惑,我无法理解出了什么问题,有人能解释我刚刚发生了什么事吗?
答案 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
。