请解释一下这些++和 - 操作

Ser*_*lov 2 javascript increment decrement

为什么这段代码输出3而不是2?

var i = 1; 
i = ++i + --i; 
console.log(i);
Run Code Online (Sandbox Code Playgroud)

我期望:

++i // i == 2
--i // i == 1
i = 1 + 1 // i == 2
Run Code Online (Sandbox Code Playgroud)

哪里弄错了?

Que*_*tin 10

更改按以下顺序进行:

  1. 增量i(至2)
  2. i左边的加法(2)
  3. 减少i(减1)
  4. i用于添加的右手侧(1)
  5. 执行添加并分配给i(3)

...并且看到你尝试这样做让我对JSLint不喜欢++和为什么有所了解--.