JavaScript开关的技术不好?

时间:2015-10-24 20:01:56

标签: javascript

JavaScript可能是一种棘手的语言,有很多陷阱。在这个人为的例子中,一个简单的功能是在一个开关内返回。没有休息,因为该功能会立即返回。

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

这被视为不良形式,是否会产生不良副作用?或者是这个标准的JS编程。

3 个答案:

答案 0 :(得分:2)

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

就个人而言,我尝试在函数末尾只保留我的函数,因为在代码中添加日志语句会更容易。

答案 1 :(得分:1)

没关系,这是一种常见的做法,因此你没有不必要的副作用,因为你实际上是通过回到来电者而离开了这个功能。

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

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

答案 2 :(得分:1)

break中不使用use switch是完全标准的,并且其行为是明确定义的。

例如:

[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