Switch vs. hash vs. if else (v45)

Revision 45 of this benchmark created by asd on


Preparation HTML

<script>
  var theVar = 'j';
  
  var cases = {};
  cases['a'] = function() {};
  cases['b'] = function() {};
  cases['c'] = function() {};
  cases['d'] = function() {};
  cases['e'] = function() {};
  cases['f'] = function() {};
  cases['g'] = function() {};
  cases['h'] = function() {};
  cases['i'] = function() {};
  cases['j'] = function() {};
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Switch
switch (theVar) {
  case 'a':
    cases['a']();
    break;
  case 'b':
    cases['b']();
    break;
  case 'c':
    cases['c']();
    break;
  case 'd':
    cases['d']();
    break;
  case 'e':
    cases['e']();
    break;
  case 'f':
    cases['f']();
    break;
  case 'g':
    cases['g']();
    break;
  case 'h':
    cases['h']();
    break;
  case 'i':
    cases['i']();
    break;
  case 'j':
    cases['j']();
    break;
  default:
}
ready
Hash
if (typeof cases[theVar] == 'function') {
  cases[theVar]();
} else {

}
ready
If else
if (theVar === 'a') {
  cases['a']()
} else if (theVar === 'b') {
  cases['b']()
} else if (theVar === 'c') {
  cases['c']()
} else if (theVar === 'd') {
  cases['d']()
} else if (theVar === 'e') {
  cases['e']()
} else if (theVar === 'f') {
  cases['f']()
} else if (theVar === 'g') {
  cases['g']()
} else if (theVar === 'h') {
  cases['h']()
} else if (theVar === 'i') {
  cases['i']()
} else if (theVar === 'j') {
  cases['j']()
} else {}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.