Hacker News new | ask | show | jobs
by XCSme 2265 days ago
Isn't it going to short-circuit with the return of the first truthy statement?
1 comments

The expression immediately to the right of each 'case' keyword is evaluated before the resulting values are compared to true.
If that's the case, then wouldn't both "asdf" and "qwer" be printed to the console when executing the following code?

  function test() {
      switch (true) {
          case console.log('asdf') === undefined: return 1;
          case console.log('qwer') === undefined: return 2;
      }
  }
  test();
Hmm, I wrote some similar test code before writing my comment, but only included one 'case'. Indeed, you're right, they're evaluated only as needed.