首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript交换机技术不好吗?

JavaScript交换机技术不好吗?
EN

Stack Overflow用户
提问于 2015-10-24 20:01:55
回答 3查看 351关注 0票数 3

JavaScript可能是一种棘手的语言,有许多问题。在这个精心设计的例子中,一个简单的函数正在开关中返回。没有中断,因为函数将立即返回。

代码语言:javascript
复制
function getUpperName (animal) {
    switch(animal) {
        case 'dog':
           return 'Dawg';
        case 'cat':
           return 'Kitty';
        default:
           return 'Unknown';
    }
}

这是否被认为是不好的形式,它会有不必要的副作用吗?或者这是标准的JS编程。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-24 20:11:55

你的密码没问题。在这种情况下,您不需要任何break,也不会适得其反。使用JSLint检查代码始终是一个很好的实践。

就我个人而言,我试图保持函数在函数末尾只有一个返回,因为这样可以更容易地将日志语句添加到代码中。

票数 3
EN

Stack Overflow用户

发布于 2015-10-24 20:08:50

这很好,这是一种常见的做法,因此您没有不必要的副作用,因为您实际上是通过返回调用方来离开函数的。

又一个暗示。有时,您甚至可以看到switch语句的以下表单,这对我来说更清晰:

代码语言:javascript
复制
function getUpperName (animal) {
    switch(true) {
        case animal === 'dog':
           return 'Dawg';
        case animal === 'cat':
           return 'Kitty';
        default:
           return 'Unknown';
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-10-24 20:12:37

break中不使用use break是完全标准的,它的行为是定义良好的。

例如:

代码语言:javascript
复制
[0, 1, 2, 3].map(function f(n) {
  var r = 0;
  switch(n) {
    case 2: ++r;
    case 1: ++r;
  }
  return r;
}); // [0, 1, 2, 0]

然而,大多数人认为这种行为有违直觉.因此,他们更喜欢在switch的末尾退出case。所以他们使用break。如果您也想退出该函数,可以使用return

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33322713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档