||=、&&=、??= 运算符
// 逻辑或赋值运算、逻辑与赋值运算、逻辑空赋值运算
let str = undefined;
// 当左侧值为真时把右侧值赋值给左侧变量
console.log(str &&= '逻辑与赋值运算');
// 当左侧值为假时把右侧值赋值给左侧变量
str ||= '逻辑或赋值运算';
console.log(str);
// 因为上面的逻辑或赋值已经赋值过了所以这里就有值了
console.log(str &&= '逻辑与赋值运算');
// 当左侧值为null、undefined时把右侧值赋值给左侧变量
str ??= '逻辑空赋值运算';
console.log(str);
// 因为str为undefined了所以会把右侧值赋值给左侧变量
str = undefined;
str ??= '逻辑空赋值运算';
console.log(str);