JavaScript开关上的错误技术?

JavaScript开关上的错误技术?,javascript,Javascript,JavaScript可能是一种棘手的语言,有许多缺陷。在这个人为的例子中,一个简单的函数在一个开关中返回。没有中断,因为函数将立即返回 function getUpperName (animal) { switch(animal) { case 'dog': return 'Dawg'; case 'cat': return 'Kitty'; default: return

JavaScript可能是一种棘手的语言,有许多缺陷。在这个人为的例子中,一个简单的函数在一个开关中返回。没有中断,因为函数将立即返回

function getUpperName (animal) {
    switch(animal) {
        case 'dog':
           return 'Dawg';
        case 'cat':
           return 'Kitty';
        default:
           return 'Unknown';
    }
}

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

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

另一个提示。有时,您甚至可以看到
switch
语句的以下形式,这对我来说更为简洁:

function getUpperName (animal) {
    switch(true) {
        case animal === 'dog':
           return 'Dawg';
        case animal === 'cat':
           return 'Kitty';
        default:
           return 'Unknown';
    }
}

你的代码很好。在这种情况下,您不需要任何
中断
,也不会适得其反。检查代码始终是一个好的实践


就我个人而言,我尽量在函数末尾只返回一次函数,因为这样更容易将日志语句添加到代码中。

开关中不使用use
break
是完全标准的,其行为也有很好的定义

例如:

[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]

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

作为
return
直接返回,不执行以下操作,应该可以。