JavaScript可能是一种棘手的语言,有许多问题。在这个精心设计的例子中,一个简单的函数正在开关中返回。没有中断,因为函数将立即返回。
function getUpperName (animal) {
switch(animal) {
case 'dog':
return 'Dawg';
case 'cat':
return 'Kitty';
default:
return 'Unknown';
}
}这是否被认为是不好的形式,它会有不必要的副作用吗?或者这是标准的JS编程。
发布于 2015-10-24 20:11:55
你的密码没问题。在这种情况下,您不需要任何break,也不会适得其反。使用JSLint检查代码始终是一个很好的实践。
就我个人而言,我试图保持函数在函数末尾只有一个返回,因为这样可以更容易地将日志语句添加到代码中。
发布于 2015-10-24 20:08:50
这很好,这是一种常见的做法,因此您没有不必要的副作用,因为您实际上是通过返回调用方来离开函数的。
又一个暗示。有时,您甚至可以看到switch语句的以下表单,这对我来说更清晰:
function getUpperName (animal) {
switch(true) {
case animal === 'dog':
return 'Dawg';
case animal === 'cat':
return 'Kitty';
default:
return 'Unknown';
}
}发布于 2015-10-24 20:12:37
在break中不使用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]然而,大多数人认为这种行为有违直觉.因此,他们更喜欢在switch的末尾退出case。所以他们使用break。如果您也想退出该函数,可以使用return。
https://stackoverflow.com/questions/33322713
复制相似问题