JavaScript
??=, ||=, &&=
4/15/2023
Another weird operator to save us from infinite if statements.
Falsy
A Falsy is a value considered false in a boolean context. The following values are the falsy values in Javascript
null, undefined, false, NaN, 0, -0, 0n, "", document.all
Truthy
A Truthy value is a value considered true in a boolean context. If values are not falsy, then they’re all truthy.
Nullish
A Nullish value is the value which is either null or undefined, which is always falsy.
&&= Logical AND assignment
This operator assigns the right term to the left term if the left term is truthy.
let truthyValue = 1
let falsyValue = false
truthyValue &&= 2
falsyValue &&= 3
console.log(truthyValue, falsyValue)
// Expected output: 2, false
||= Logical OR assignment
This operator assigns the right term to the left term if the left term is falsy.
let truthyValue = 1
let falsyValue = false
truthyValue ||= 2
falsyValue ||= 3
console.log(truthyValue, falsyValue)
// Expected output: 1, 3
??= Nullish coalescing assignment
This operator assigns the right term to the left term if the left term is nullish.
let truthyValue = 1
let falsyValue = false
let nullishValue = null
truthyValue ??= 2
falsyValue ??= 3
nullishValue ??= "Hola"
console.log(truthyValue, falsyValue, nullishValue)
// Expected output: 1, false, Hola
References
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators