Skip to content

&&=

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