Hacker News new | ask | show | jobs
by foldr 2265 days ago
The expression immediately to the right of each 'case' keyword is evaluated before the resulting values are compared to true.
1 comments

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.