&&=
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; // undefinednum1 ??= num2;console.log(num1); // 10num1 = false;num1 ??= num2;console.log(num1); // falsenum3 ??= 123;console.log(num3); // 123// 等价于// num1 ?? (num1 = num2);// ?? => https://www.yuque.com/wuchendi/fe/aai5td
