&&=
let num1 = 5;
let num2 = 10;
num1 &&= num2;
console.log(num1); // 10
// 等价于
// num1 && (num1 = num2);
// if (num1) {
// num1 = num2;
// }
||=
let num1;
let num2 = 10;
num1 ||= num2;
console.log(num1); // 10
// 等价于
// num1 || (num1 = num2);
// if (!num1) {
// num1 = num2;
// }
??=
空值合并运算符 ?? 只会在左边的值严格等于 null 或 undefined 时起作用
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