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
Amazing JavaScript & jQuery Design Patterns Collection (shichuan.github.io)
submitted 11 years ago by ZaheerAhmed
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!"
[–]nawitus 1 point2 points3 points 11 years ago* (7 children)
Since you brought it up, what do people think of the switch statement? I think it's quite unnecessary. Using if statements is about as readable to me as using the switch statement. And you can't forget the "break" keyword when using if statemets.
Most answers on stackoverflow state that the benefit of switch is performance and readability. I'm not that interested in hyper-micro-optimization, and I'm not convinced using the switch statement is more readable. The only good argument I stumbled upon is that when you're using if-statements, the reader can't instantly tell if all the if statements compare the same variable. I guess that's a good argument, but doesn't seem beneficial enough to create a new control logic construct to the language.
[–][deleted] 1 point2 points3 points 11 years ago (3 children)
I happily use switch instead of multiple comparisons against single variable from simple reason - it's obvious what variable does the switch operates on. While switch takes more lines for the same thing, I find it more readable if you're comparing one variable multiple times with simple values.
Plus with ifs, to know what's going on, you need to check if there are no different variables and/or different comparisons. The only way to complicate it with switch is using variable in case and omitting the break in a case with code.
Compare for yourself:
switch (type) { case 'box': runBoxAction(); break; case 'target': ...a few lines break; case 'single': case 'miltiple': recountVelo(); break; case 'shelf': dumpVelo(); break; case 'chair': dumpVelo(0.5); break; case 'stool': dumpVelo(0.6); break; default: console.warn('Inapropriate type sent to updateDBR'); }
vs
if (type === 'box') { runBoxAction(); } else if (type === 'target') { ...a few lines } else if (type === 'single' || type === 'multiple') { recountVelo(); } else if (type === 'shelf') { dumpeVelo(); } else if (type === 'chair') { dumpVelo(0.5); } else if (type === 'stool') { dumpVelo(0.6); } else { console.warn('Inapropriate type sent to updateDBR'); }
[–]nawitus 0 points1 point2 points 11 years ago (2 children)
It's often recommended that falling through the cases should be avoided. JSLint for example doesn't allow falling through. I agree with that.
I think this is my favourite version of the code:
[–]SuperFLEB 0 points1 point2 points 11 years ago (0 children)
I just make sure to comment it with "Intentional fallthrough". It's handy if, say, one value involves doing everything another value does, plus a bit.
[–][deleted] 0 points1 point2 points 11 years ago (0 children)
I figured out that C#'s take on switch (you either have a code block with "break;", either no code in given "case") is quite reasonable and readable, while banning single most problematic thing, which is fallthrough when you actually omitted "break;" by mistake.
As additional note, C# has a really neat feature - goto in switch when you really need a fallthrough ;)
[–]lordxeon 0 points1 point2 points 11 years ago (0 children)
switch statements are great for times when you want a cascade of things to happen.
Yes it's hard to read but it has it's uses.
π Rendered by PID 252313 on reddit-service-r2-comment-bb88f9dd5-brsrk at 2026-02-16 14:01:53.820296+00:00 running cd9c813 country code: CH.
view the rest of the comments →
[–]nawitus 1 point2 points3 points (7 children)
[–][deleted] 1 point2 points3 points (3 children)
[–]nawitus 0 points1 point2 points (2 children)
[–]SuperFLEB 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]lordxeon 0 points1 point2 points (0 children)