Hemanth.HM

A Computer Polyglot, CLI + WEB ♥'r.

Logical Assignment Operators in JavaScript

| Comments

Logical assignment operators in JavaScript combine Logical Operators and Assignment Expressions.

1
2
3
//"Or Or Equals"
x ||= y;
x || (y = z);
1
2
3
// "And And Equals"
x &&= y;
x && (y = z);
1
2
3
// "QQ Equals"
x ??= y;
x ?? (y = z);

So, say you have a function updateID it can vary in the below ways:

1
2
3
4
5
6
7
8
9
10
11
const updateID = user => {

  // We can do this
  if (!user.id) user.id = 1

  // Or this
  user.id = user.id || 1

  // Or use logical assignment operator.
  user.id ||= 1
}

You could also use it with ??

1
2
3
4
5
6
function setOpts(opts) {
  opts.cat ??= 'meow'
  opts.dog ??= 'bow';
}

setOpts({ cat: 'meow' })

This is on stage-4 and you should be able to use it today!

I am happy that I was able to co-champion this proposal.

7 Years ago it was just a thought!

history

Comments