单个语句中的多个递增/递减

时间:2013-05-04 00:47:42

标签: javascript

var a = 0;
(++a)+(a++)+(++a); 
print(a);

这打印3.我假设它只执行单个增量。

var a = 0;
(++a)+(a++)+(--a); 

这打印1.这里遵循的规则是什么?

谢谢。

2 个答案:

答案 0 :(得分:6)

您没有将添加结果分配给任何内容。你这样做:

(++a)+(a++)+(++a); 

增加a 3次。 0 + 3 = 3所以a是值3。

答案 1 :(得分:1)

JavaScript 从左到右执行。您可以通过查看使用乘法时发生的情况来看到这一点

a = 1;
   ++a *   a; // 4
//   2 *   2  =  4

a = 1;
     a * ++a; // 2
//   1 *   2  =  2

a = 1;
   a++ * a  ; // 2
// 1   * 2    =  2

a = 1;
   a   * a++; // 1
// 1   * 1    =  1

完成其中之后,生成的a2