Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
Firefox 98
Windows
Desktop
3 years ago
Test name Executions per second
Switch 42474.6 Ops/sec
Object Literal 42852.3 Ops/sec
If Else 43087.7 Ops/sec
Object Literal defined outside function 43447.7 Ops/sec
Map 39810.5 Ops/sec
Map - defined outsid function 39577.1 Ops/sec
Script Preparation code:
AخA
 
var animal = ["dog", "cat", "cattle", "cheetah"][Math.floor(Math.random() * 4)]
Tests:
  • Switch

    x
     
    function test(animal) {
      switch(animal){
       case 'cat': return 'Kitten'
       case 'cattle': return 'Calf'
       case 'cheetah': return 'Cub'
       case 'dog': return 'Pup'
       default: return "I don't know that"
    }
    }
    console.log(test(animal))
  • Object Literal

     
    function test(animal) {
      var babyAnimal = {
       cat:'Kitten',
       cattle:'Calf',
       cheetah:'Cub',
       dog:'Pup'
    }
    return babyAnimal[animal] ?? "I don't know that"
    }
    console.log(test(animal))
  • If Else

     
    function test(animal) {
      if(animal.toLowerCase()==='cat'){
        return 'Kitten'
    } else if(animal.toLowerCase()=='cattle'){
         return 'Calf'
    } else if(animal.toLowerCase()==='cheetah'){
         return 'Cub';
    } else if(animal.toLowerCase()==='dog'){
         return 'Pup';
    }
       return "I don't know that"
    }
    console.log(test(animal))
  • Object Literal defined outside function

     
      var babyAnimal = {
       cat:'Kitten',
       cattle:'Calf',
       cheetah:'Cub',
       dog:'Pup'
    }
    function test(animal) {
    return babyAnimal[animal] ?? "I don't know that"
    }
    console.log(test(animal))
  • Map

     
    function test(animal) {
      const map1 = new Map();
      map1.set('cat', 'Kitten');
      map1.set('cattle', 'Calf');
      map1.set('cheetah', 'Cub');
      map1.set('dog', 'Pup');
      return map1.get(animal) || "I don't know that"
    }
    console.log(test(animal))
  • Map - defined outsid function

     
    const map1 = new Map();
    map1.set('cat', 'Kitten');
    map1.set('cattle', 'Calf');
    map1.set('cheetah', 'Cub');
    map1.set('dog', 'Pup');
    function test(animal) {
      return map1.get(animal) || "I don't know that"
    }
    console.log(test(animal))