自增(++)自减(–)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。
let a = 10; let b = ++a; // b=11;a=11;let b = ++a; 拆分运算过程为:①a=a+1=11; ②b=a=11, 最后结果为b=11,a=11;
let a = 10; let b = a++; // b=10;a=11;let b = a++; 拆分运算过程为:①b=a=10; ②a=a+1=11, 最后结果为b=10,a=11;
以上为自增的运算方式,自减与自增的运算方式一样。 前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。 后缀自增自减法(a++,a--):先进行表达式运算,再进行自增或者自减运算。
接下来用一个测试用例来验证一下大家有咩有理解"自增自减运算符":
let a = 10; let b = 20; let c = ++a + b-- - a++ + --b;上面测试用例的运算过程为:
1、(++a)的运算过程为:a=10+1=11; 结果a=11;b=20;c=undefined; 2、(++a) + (b--) => 11+(b--)的运算过程为:①11+b=11+20=31;②b=b-1=20-1=19; 结果a=11;b=19;c=undefined; 3、(++a) + (b--) - (++a) => 31-(a++)的运算过程为:①31-a=31-11=20;②a=a+1=11+1=12; 结果a=12;b=19;c=undefined; 4、(++a) + (b--) - (a++) + (--b) => 20+(--b)的运算过程为:①b=b-1=19-1=18;②20+b=20+18=38;结果a=12;b=18;c=38;
整个语句运算完成之后的最终结果为a=12;b=18;c=38;