关于switch和if/else语句中的最佳实践有很多讨论和评论。我看到有人说我们都应该尽可能使用对象字面量而不是 switch。
所以我复制了这个案例,并在 switch 之间进行了一些简单的测试:
(function(test){
var bar;
switch(bar) {
case 1:
bar = 'red';
break;
case 2:
bar = 'blue';
break;
case 3:
bar = 'yellow';
break;
case 4:
bar = 'green';
break;
case 5:
bar = 'black';
break;
}
return bar;
})(5);
并通过对象文字传递:
(function(test){
return { 1: 'red', 2: 'blue', 3: 'yellow', 4: 'green', 5: 'black' }[ test ];
})(5);
运行此测试后,显然 switch 语句比在对象字面量中调用测试值更快。
我的测试错了吗?在这种情况下使用一种或另一种方法之前我应该考虑什么?或者也许我看到的关于这个主题的自以为是的评论是错误的,我不应该试图绕过基本面......