&&=
javascript
let num1 = 5
let num2 = 10
num1 &&= num2
console.log(num1) // 10
// 等价于
// num1 && (num1 = num2);
// if (num1) {
// num1 = num2;
// }
||=
javascript
let num1
let num2 = 10
num1 ||= num2
console.log(num1) // 10
// 等价于
// num1 || (num1 = num2);
// if (!num1) {
// num1 = num2;
// }
??=
空值合并运算符 ?? 只会在左边的值严格等于 null 或 undefined 时起作用
javascript
let num1
let num2 = 10
let num3 = null // undefined
num1 ??= num2
console.log(num1) // 10
num1 = false
num1 ??= num2
console.log(num1) // false
num3 ??= 123
console.log(num3) // 123
// 等价于
// num1 ?? (num1 = num2);
// ?? => https://www.yuque.com/wuchendi/fe/aai5td