switchおよびif/elseステートメントのベスト プラクティスについては、多くの議論とコメントがあります。可能な場合は、スイッチの代わりにオブジェクト リテラルを使用する必要があると言う人を見てきました。
だから私はこのケースを再現し、スイッチ間で少し簡単なテストを行いました:
(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 ステートメントの方が高速であることが明らかです。
私のテストは間違っていますか?この場合、いずれかの方法を使用する前に何を考慮する必要がありますか? あるいは、この件に関して私が見た独断的なコメントは単に間違っているので、基本を回避しようとするべきではありません...