Logical Assignment Operators

By  on  

I love JavaScript, it's my favorite programming language, but I love dipping into other languages because they offer a new perspective on coding paradigms. There've been syntax additions to JavaScript that I've seen I found interesting (think ?? in optional chaining) and now we get more -- logical assignment operators. Let's check out how they can be used!

||=

Or-Or-Equals is used to assign a value when one doesn't exist:

let name;
const defaultName = "Guest";

name ||= defaultName;
// name >> "Guest"

// Equivalent: name || (name = defaultName);

??=

Question-Question-Equals assigns value when the value is undefined:

const j = 1;
j??= 10
// j >> 1

x = undefined;
x ??= 10
// x >> 10

&&=

And-And-Equals assigns value to the last in line when both are defined:

let name;
const defaultName = "Guest";

name &&= defaultName;
name >> undefined

// Both have values
let name = "David";
const defaultName = "Guest";

name &&= defaultName;
// name >> "Guest"

// Equivalent: name && (name = defaultName);

I do worry, at least in the short term, that this new syntax could be hard to maintain, but just like every other new language feature, we'll get used to it!

Recent Features

  • By
    7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

  • By
    Create a CSS Cube

    CSS cubes really showcase what CSS has become over the years, evolving from simple color and dimension directives to a language capable of creating deep, creative visuals.  Add animation and you've got something really neat.  Unfortunately each CSS cube tutorial I've read is a bit...

Incredible Demos

  • By
    Advanced CSS Printing – Using JavaScript Double-Click To Remove Unwanted DIVs

    Like any good programmer, I'm constantly searching around the internet for ideas and articles that can help me improve my code. There are thousands of talented programmers out there so I stumble upon some great articles and code snippets that I like to print out...

  • By
    GitHub-Style Sliding Links

    GitHub seems to change a lot but not really change at all, if that makes any sense; the updates come often but are always fairly small. I spotted one of the most recent updates on the pull request page. Links to long branch...

Discussion

    Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!