Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15
Safari 12
Mac OS X 10.14.6
Desktop
5 years ago
Test name Executions per second
Switch 760517.9 Ops/sec
Object Function 737724.1 Ops/sec
Object Property 765465.6 Ops/sec
Script Preparation code:
AخA
 
var str = 'abc';
str = str.charAt(Math.floor(Math.random() * 3));
Tests:
  • Switch

    x
     
    function test (str) {
      switch (str) {
        case 'a': return 'A'; break;
        case 'b': return 'B'; break;
        case 'c': return 'C'; break;
      }
    }
    console.log(test(str));
  • Object Function

     
    const obj = {
      a: () => 'A',
      b: () => 'B',
      c: () => 'C'
    };
    console.log(obj[str]());
  • Object Property

     
    const obj = {
      a: 'A',
      b: 'B',
      c: 'C'
    };
    console.log(obj[str]);