javascript Postfix和前缀增量表达式

时间:2017-03-13 21:20:38

标签: javascript increment

我无法理解如何在表达式中修复Postfix和Prefix Increment:

var x = 1;
x = ++x + x++ * x

为什么浏览器控制台会返回8?

4 个答案:

答案 0 :(得分:4)

从左到右评估:

#include <stdio.h>

void hello(const char * name){
  printf("Hello %s!\n", name);
}

答案 1 :(得分:1)

var x = 1; x = ++ x + x ++ * x

按照

++x => 2 (After pre-fix's updated value)
x++ => 2 (Post-fix will update in second sequence not now)
x   => 3 (After post-fix's updated value)

如此

x = 2 + 2 * 3 

按优先级相乘 会

x = 2 + 6

因此

x = 8 

答案 2 :(得分:1)

您可以在此网站上了解更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Increment 原因如下:

  1. x = 1; X 是 1。
  2. x = ++x;现在 x 增加了 1。(X 是 2)
  3. x = ++x + x++ * x

因为总是先计算乘法,所以我们将 x++ 乘以 x。请记住,x 的值为 2。

这是数学表达式中的样子:

x = 1; 
x = 1+1+2+1*3

我们将 x++ 乘以 x。记住,x 是 2。所以它看起来像这样:

x = 1+1 +(2+1{2})

现在我们将计算括号内的数字。

2+1*2 = 6

之后,我们可以将 2 与 6 相加得到 8。

2+6 = 8

这就是为什么。

答案 3 :(得分:0)

x = ++x + (x++ * x)

将其视为数学运算,从左到右。

++x = x is now 2
x++ = x is now 3 but the showed value remains 2
x = is 3

x = 2 + (2 * 3)
x = 8
相关问题