繁体   English   中英

有人可以用 ++ 和括号解释 JavaScript 中的这段代码吗?

[英]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。 在您的代码中, ++mm++出现 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=48m=14的值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM