1、递增运算符:++
递增运算符对其操作数进行增量(加一)操作。
当递增运算符在操作数之前,称为“前增量”运算符,先对操作数进行增量计算,然后返回增量计算后的值。
当递增运算符在操作数之后,称为“后增量”运算符,对操作数进行增量计算,但返回未做增量计算的值。
var a = 0; var b = ++a; // b的值为1,a的值为1
var a = 0; var b = a++; // b的值为0,a的值为1
2、带操作的赋值运算符
例如:+= -= *= /=
在大多数情况下, a op= b (op代表一个运算符) 等价于 a = a op b
例如: var a = 10;
a += 10; //等价于 a = a + 10, a的值为20
3、当递增运算符遇见带操作的赋值运算
a op= b 不等价于 a = a op b
例如:var arr = [1, 2, 3, 4, 5];
var i = 0;
arr[i++] *= 10; //arr的值为[10,2,3,4,5], i的值为1(分析: i++后变为1,但返回i自增之前的值,即返回0,所以为 //arr[0] *= 10,即arr[0] = arr[0] * 10)
var arr = [1, 2, 3, 4, 5];
var i = 0;
arr[i++] = arr[i++]*10; //arr的值为[20,2,3,4,5], i的值为2(分析:赋值运算符前i++后i变为1,但返回i自增之前的值,即返回 //0,所以为arr[0] = arr[i++]*10, 赋值运算符后i++后i变为2,但返回i自增之前的值,即返回1,即 //arr[0] = arr[1] * 10)
(同理可推后增运算符和递减运算符)