If-else vs. switch vs. lookup table

JavaScript performance comparison

Revision 7 of this test case created

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    function ifElseTest(stuff) {
      if(stuff === "pizza") {
        return "food";
      } else if (stuff === "house") {
        return "building";
      } else if (stuff === "table") {
        return "furniture";
      } else if (stuff === "car") {
        return "driving";
      } else if (stuff === "water") {
        return "drink";
      } else if (stuff === "air") {
        return "nothing";
      }
    };
   
    function switchTest(stuff) {
      switch (stuff) {
        case "pizza":
          return "food";
        break;
   
        case "house":
          return "building";
        break;
   
        case "table":
          return "furniture";
        break;
   
        case "car":
          return "driving";
        break;
   
        case "water":
          return "drink";
        break;
     
        case "air":
          return "nothing";
        break;
      }
    };
   
    var lookupTable = {
      "pizza": "food",
      "house": "building",
      "table": "furniture",
      "car": driving",
      "
water": "drink",
      "
air": "nothing"
    };
   

};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
if else
ifElseTest("pizza");
ifElseTest("water");
ifElseTest("air");
pending…
switch
switchTest("pizza");
switchTest("water");
switchTest("air");
pending…
lookup table
lookupTable["pizza"]();
lookupTable["water"]();
lookupTable["air"]();
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment