Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a reverse logical nullish assignment?

So the nullish coalescing assignment operator ??= assigns the value to the variable only if the current stored value is nullish.

Maybe I'm missing the obvious but I can't think of a slick solution (without if statements) to only assign if the right-hand side value being assigned is not nullish?

I'm using nodeJS to give a bit more context.


I want

let x r??= 2;
// Updates 'x' to hold this new value
x r??= undefined;
// Has no effect, since the value to assign is nullish
console.log(x); // 2

EDIT to give more clarity to my problem:

I want a variable only to be assigned a new value, if that new value is not nullish.

let iceCream = {
    flavor: 'chocolate'
}

const foo = 2.5
const bar = undefined;

iceCream.price r??= bar
// does not assign the new value because it is nullish
console.log(iceCream.price) // expected to be error, no such property

iceCream.price r??= foo
// assigns the new value because it is not nullish but a float
console.log(iceCream.price) // expected to be 2.5

iceCream.price r??= bar
// does not assign the new value because it is nullish
console.log(iceCream.price) // expected to still be 2.5
like image 500
Proxycon Avatar asked Aug 09 '26 12:08

Proxycon


1 Answers

No, that’s not a single operator. The closest is two operators:

x = undefined ?? x;
like image 83
Ry- Avatar answered Aug 13 '26 07:08

Ry-



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!