I was wondering about the performances of the following implementations of conditional structs in javascript.
Method 1:
if(id==="camelCase"){ window.location.href = "http://www.thecamelcase.com"; }else if (id==="jsFiddle"){ window.location.href = "http://jsfiddle.net/"; }else if (id==="cricInfo"){ window.location.href = "http://cricinfo.com/"; }else if (id==="apple"){ window.location.href = "http://apple.com/"; }else if (id==="yahoo"){ window.location.href = "http://yahoo.com/"; }
Method 2:
switch (id) { case 'camelCase': window.location.href = "http://www.thecamelcase.com"; break; case 'jsFiddle': window.location.href = "http://www.jsfiddle.net"; break; case 'cricInfo': window.location.href = "http://www.cricinfo.com"; break; case 'apple': window.location.href = "http://www.apple.com"; break; case 'yahoo': window.location.href = "http://www.yahoo.com"; break; }
Method 3
var hrefMap = { camelCase : "http://www.thecamelcase.com", jsFiddle: "http://www.jsfiddle.net", cricInfo: "http://www.cricinfo.com", apple: "http://www.apple.com", yahoo: "http://www.yahoo.com" }; window.location.href = hrefMap[id];
Method 4
window.location.href = { camelCase : "http://www.thecamelcase.com", jsFiddle: "http://www.jsfiddle.net", cricInfo: "http://www.cricinfo.com", apple: "http://www.apple.com", yahoo: "http://www.yahoo.com" }[id];
Probably Method 3 and 4 might have almost the same performance but just posting to confirm.
if-else Versus switch As it turns out, the switch statement is faster in most cases when compared to if-else , but significantly faster only when the number of conditions is large.
yes , switch case works faster than if-else ladder , This is mainly because of the optimization of switch case. if-else need to be processed each line in order of how the user has defined it. For switch cases the compiler will use Branch table - Wikipedia which will provide faster execution.
A switch statement is usually more efficient than a set of nested ifs. Deciding whether to use if-then-else statements or a switch statement is based on readability and the expression that the statement is testing.
switch is a type of conditional statement that will evaluate an expression against multiple possible cases and execute one or more blocks of code based on matching cases.
According to this JSBen.ch test, the switch
setup is the fastest out of the provided methods (Firefox 8.0 and Chromium 15).
Methods 3 and 4 are slightly less fast, but it's hardly noticeable. Clearly, the if-elseif method is significantly slower (FireFox 8.0).
The same test in Chromium 15 does not show significant differences in performance between these methods. In fact, the if-elseif method seems to be the fastest method in Chrome.
I have run the test cases again, with 10 additional entries. The hrefmap (methods 3 and 4) show a better performance.
If you want to implement the compare method in a function, method 3 would definitely win: Store the map in a variable, and refer to this variable at a later point, instead of reconstructing it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With