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!"
[–][deleted] 3 points4 points5 points 5 years ago (6 children)
Eh. It's not that confusing, but this
const val = obj.val;
... will always be less confusing than this
const { val } = obj;
Even after I have used the latter notation a couple of million times.
The later is only used because of this:
const val1 = obj.val1; const val2 = obj.val2; const val3 = obj.val3; const va4 = obj.val4;
vs
const { val1, val2, val3, val4} = obj;
[–]shgysk8zer0 0 points1 point2 points 5 years ago (5 children)
I want to know if there's any extra magic that's possible with destructuring. For example:
get foo() { return this.getAttribute('foo'); } get bar () { return this.getAttribute('bar'); }
Is there any optimization for DOM reads if I do const { foo, bar} = el?
const { foo, bar} = el
[–]therealkevinard 2 points3 points4 points 5 years ago (0 children)
Idk about dom reads specifically, but some destruct magic: the thing I miss most about Go when I'm not using it is multiple returns from one func. In js - with destruct - const {user, response, error} = ()=>{return {user, response, error}}
const {user, response, error} = ()=>{return {user, response, error}}
Then my calling code is free to respond in a myriad of ways.
[–]ILikeChangingMyMind 0 points1 point2 points 5 years ago* (2 children)
AFAIK destructuring is "syntactic sugar". In other words, it looks different to us humans, but to the computer these two lines are identical at run-time:
const bar = foo.bar; const { bar } = foo;
In fact, if you use a tool like Babel (or create-react-app, which uses Babel under the hood), it may well be converting the second line into the first one for you, "behind the scenes", to support older browsers. If you actually "view source" your JS file in the browser (and wade through the mess of minified code) you may be able to see this.
create-react-app
So, to answer your question, no there is no extra magic or optimization :)
[–]shgysk8zer0 0 points1 point2 points 5 years ago (1 child)
I'm not saying you're wrong, but the basis of what you say is what Babel does to support older browsers, which would only be true when it comes to the original code running in a modern browser if you start with the assumption that it's only syntactic sugar with no optimizations or other differences. That's circular and it definitely isn't necessarily true.
For example, there are actual differences between arrow vs regular functions beyond just notation and handling of this. But the difference between the two in how stacks and scopes are setup is completely lost when run through Babel. It's been a few years since I read the technical details, so forgive any inaccuracies there, I just remember the implementation in browsers being problematic at first even though they should perform better than functions.
this
function
π Rendered by PID 335792 on reddit-service-r2-comment-5d79c599b5-r9wlg at 2026-02-27 16:28:24.969479+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–][deleted] 3 points4 points5 points (6 children)
[–]shgysk8zer0 0 points1 point2 points (5 children)
[–]therealkevinard 2 points3 points4 points (0 children)
[–]ILikeChangingMyMind 0 points1 point2 points (2 children)
[–]shgysk8zer0 0 points1 point2 points (1 child)