n-- 和 --n 有什么区别

Lui*_*ira -6 javascript

鉴于这段代码:

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

输出是

1

1

0

而对于这个

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

输出是

1

0

0

怎么了?

Jam*_*lly 5

如果您希望该值立即更新,您可以将 移动--到变量名称的前面:

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

1

0

0

这也是它在 C 中的工作方式

递减运算符将其操作数递减(减一)并返回一个值。

  • 如果使用后缀(例如,x--),则返回递减前的值。
  • 如果使用前缀(例如,--x),则返回递减后的值。

MDN 关于算术运算符的注释

  • OP 正在询问为什么这种行为与诸如“C”之类的语言不同。如果他的假设是错误的,请在您的回答中提及 (3认同)