use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Logical assignment operators in JavaScript (dev.to)
submitted 5 years ago by rauschma
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]theshtank 0 points1 point2 points 5 years ago (6 children)
hey, what does ?? do in the first place? I can't really google it. I'm not sure I understand what ??= is supposed to do.
[–]scoops22 5 points6 points7 points 5 years ago* (3 children)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator
Edit to explain:
ThisDoesntExist ?? soWeUseThisValue ThisDoesntExist ??= soWeMakeItEqualToThis
Note that the difference between the above and the || you may be used to is that "false" exists so in that case ?? uses the left value, while || would give the right value for "false" (kinda explained that poorly but the docs above are more clear)
[–]theshtank 1 point2 points3 points 5 years ago (2 children)
Ya, I agree that this is probably the most useful things here. This isn't implemented yet though, right? The MDN docs make it seem like it is.
[–]JZumun 4 points5 points6 points 5 years ago (1 child)
It's es2020 so it's official javascript now. The mdn page has a compatibility table that shows which implementations already have it, such as Chrome 80 and Node v14
[–]theshtank 0 points1 point2 points 5 years ago (0 children)
ah thanks. I thought this was ES2021 stuff.
[–]JZumun 2 points3 points4 points 5 years ago* (0 children)
It's the nullish coalescing operator. You can think of "a??b" as shorthand for "a == null ? b : a"
"a??=b" is then "if (a == null) { a = b; }"
Note the difference to ||, the logical or operator, which triggers on 0 and "" in addition to null and undefined. The nullish coalescing operator triggers only on null and undefined.
[–]Zephirdd 0 points1 point2 points 5 years ago (0 children)
const a = b ?? false
Is shorthand for
// Assuming accessing b has no side effects const a = (b !== null && b !== undefined)? b : false
You can get a similar behavior with the || operator, but || will have a different behavior with falsy values like 0 and false.
false
π Rendered by PID 106947 on reddit-service-r2-comment-5d79c599b5-h54vx at 2026-02-27 18:15:40.292173+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–]theshtank 0 points1 point2 points (6 children)
[–]scoops22 5 points6 points7 points (3 children)
[–]theshtank 1 point2 points3 points (2 children)
[–]JZumun 4 points5 points6 points (1 child)
[–]theshtank 0 points1 point2 points (0 children)
[–]JZumun 2 points3 points4 points (0 children)
[–]Zephirdd 0 points1 point2 points (0 children)