Logical Assignment Operators in JavaScript: Small Syntax, Big Wins

JavaScript developers often write repetitive conditional logic when assigning default values or updating state based on truthiness. This post introduces the ES2021 logical assignment operators—||=
, &&=
, and ??=
—which combine a logical operator with assignment to streamline these patterns and make code more readable and intentional.
The author breaks down each operator:
- ||=
assigns the right-hand value if the left-hand side is falsy.
&&=
updates the left-hand side only when it’s truthy.??=
assigns only if the left-hand side isnull
orundefined
, preserving falsy-but-valid values like0
,false
, or""
.
Support for these operators is solid across modern platforms—Chrome, Firefox, Safari, Edge, and Node.js versions 15+—though they are not available in Internet Explorer. The post also warns against using optional chaining (?.
) on the left-hand side of these expressions, as that usage is not valid syntax. Overall, the operators offer concise syntax with real-world benefits for prop defaults, config management, and frontend state mutation workflows.