javascript中复合赋值运算符(如+=、-=等)和自增/自减运算符(++/--)可简化变量更新,提升可读性与安全性;需注意类型转换、运算优先级及对象/数组的引用特性。

JavaScript 中用赋值运算符(如 +=、-=、++ 等)可以避免重复写变量名,让更新操作更简洁、可读性更高,也减少出错可能。
基础复合赋值运算符
这些运算符把计算和赋值合并成一步,等价于“先算右边,再赋给左边”:
-
a += b等价于a = a + b -
a -= b等价于a = a - b -
a *= b等价于a = a * b -
a /= b等价于a = a / b -
a %= b等价于a = a % b
自增/自减运算符的两种写法
++ 和 -- 分前缀和后缀,行为不同:
-
前缀形式(
++a):先加 1,再返回新值 -
后缀形式(
a++):先返回原值,再加 1
例如:let x = 5; console.log(x++); // 输出 5,之后 x 变为 6;而 console.log(++x); // 输出 6,x 已是 6。循环中常用 i++,但若需立即使用更新后的值,选 ++i 更安全。
字符串和数组的常见简化场景
复合赋值对字符串拼接和数组操作也很实用:
- 拼接字符串:
message += " world";比message = message + " world";更简短 - 累加数组长度:
totalLength += arr.length; - 注意:
arr += newItem会把数组转成字符串再拼接(如[1,2] += 3 → "1,23"),这不是预期行为,数组应改用push()或展开运算符
注意事项和易错点
复合赋值看似简单,但有些细节容易忽略:
- 运算符有优先级,
a += b + c等价于a = a + (b + c),不是(a + b) + c—— 实际上结果一样,但逻辑清晰更重要 - 对象或数组变量用
+=不会深拷贝,只是重新赋引用,比如obj1 += obj2语法错误(不支持),但obj1.prop += 1是合法的 - 布尔值参与算术运算会被隐式转换:
let flag = true; flag += 1; // flag 变成 2,要小心类型意外变化
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











