[英]Can someone explain this code in JavaScript with ++ and brackets?
var m=10;
n=(m++)+(++m)+(m++)+(++m);
Output 是
n=48 m=14
这个答案是如何出现的?
最初m=10
。 现在当++
被执行时,它会给变量加 1。 在您的代码中, ++m
或m++
出现 4 次,因此最后将是 14 次。
当++
出现在像++m
这样的变量之前,它会先加 1 并在代码中使用该变量。 但是当它出现在像m++
这样的变量之后时,会先使用该变量,然后再加 1。
所以在n=(m++)+(++m)+(m++)+(++m);
,
m++
- m 将在代码中用作 10 并变为 11。
++m
- m
将首先增加 1,因此 11+1 =12 并将在代码中使用。
m++
- m 将在代码中用作 12 并变为 13。
++m
- m
将首先增加 1,因此 13+1 =14 并将在代码中使用。
因此,最终结果将如下所示: n=10+12+12+14
var m = 10; var m1 = m++; var m2 = ++m; var m3 = m++; var m4 = ++m; var n = m1 + m2 + m3 + m4; console.log('n: ' + n); console.log('m: ' + m); console.log('(m++): ' + m1 + ', (++m): ' + m2 + ', (m++): ' + m3 + ', (++m): ' + m4); console.log('---'); var x = 10; var y = (x++) + (++x) + (x++) + (++x); console.log('y: ' + y); console.log('x: ' + x);
m++
这将使用先前的 m 值然后递增。 ++m
这将首先递增,然后使用 m 的递增值。
现在, n=(m++)+(++m)+(m++)+(++m)
;
-> m++
这里首先使用m
的值,然后增加 1。所以表达式将是10 + (++m) + (m++) + (++m)
。 并且 m 的进一步值将是 11。
-> 接下来它是++m
所以它会首先递增然后在表达式中使用。 所以以前 m 的值是 11,现在 11+1 是 12。所以表达式看起来像10+12 + (m++) + (++m)
。
-> 与这里的第一点类似,它也将首先使用然后递增。 所以表达式将是n=10+12+12+(++m)
。 但在此之后,m 的值现在是 13。
-> 所以在这里(++m)
它将首先增加然后添加。 所以以前的值是 13 所以 13+1=14。 所以 m 是 14 并且表达式是n=10+12+12+14
。
所以n=48
和m=14
的值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.