如何从 switch 语句中获取返回值?

新手上路,请多包涵

在 chrome 的控制台中,当我键入:

 > switch(3){default:"OK"}
  "OK"

所以看起来 switch 语句有一个返回值。但是当我这样做时:

 > var a = switch(3){default:"OK"}

它抛出语法错误“意外的令牌开关”

是否可以捕获开关的返回语句?

原文由 foobar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

那是因为当您将其放入 Chrome 控制台时,您将其短路。它只是打印“OK”,因为它达到了默认情况, 实际上 并没有返回任何东西。

如果你想要返回一些东西,把它放在一个函数中,并在默认情况下返回“OK”。

 function switchResult(a){
    switch(a){
        default:
            return "OK";
    }
}

var a = switchResult(3);

原文由 helloandre 发布,翻译遵循 CC BY-SA 3.0 许可协议

ES6 允许您使用立即调用的 lambda 执行此操作:

 const a = (() => {
  switch(3) {
    default: return "OK";
  }
})();

原文由 zarvax 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏