赋值表达式
JavaScript使用“=”运算符来给变量或属性赋值。
i = 0; // 将变量i赋值为0
o.x = 1; // 将对象o的属性x赋值为1
“=”希望它的左操作数是一个左值,右操作数可以是任意值。
赋值表达式的值就是右操作数的值。
“=”具有非常低的优先级,通常需要补充圆括号以保证正确的去处顺序。
“=”的结合性是从右至左。
i = j = k = 0; //给三个变量赋值为0
带操作的赋值运算符
在C++中,叫复合赋值操作符。
大多数情况下,表达式为:
a op= b
这里op代表一个运算符,这个表达式等价于:
a = a op b
第一种写法中,a只计算了一次;第二种写法中,a计算了两次。所以只有在a包含具有副作用的表达式时,两者才不等价。比如:
data[i++] *= 2;
data[i++] = data[i++] * 2;