JavaScript可能是一种棘手的语言,有很多陷阱。在这个人为的例子中,一个简单的功能是在一个开关内返回。没有休息,因为该功能会立即返回。
function getUpperName (animal) {
switch(animal) {
case 'dog':
return 'Dawg';
case 'cat':
return 'Kitty';
default:
return 'Unknown';
}
}
这被视为不良形式,是否会产生不良副作用?或者是这个标准的JS编程。
答案 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
。