Performance of Assigning variables in JavaScript (v4)

Revision 4 of this benchmark created on


Description

http://stackoverflow.com/q/8624939/

Replaced location with locatio for the test.

Extended cases

Setup

window.locatio = {};
    window.id = "yahoo"; //Declare global variable

Test runner

Ready to run.

Testing in
TestOps/sec
if-elseif
if (id === "camelCase") {
  window.locatio.href = "http://www.thecamelcase.com";
} else if (id === "jsFiddle") {
  window.locatio.href = "http://jsfiddle.net/";
} else if (id === "cricInfo") {
  window.locatio.href = "http://cricinfo.com/";
} else if (id === "nope1") {} else if (id === "nope2") {} else if (id === "nope3") {} else if (id === "nope4") {} else if (id === "nope5") {} else if (id === "nope6") {} else if (id === "nope7") {} else if (id === "nope8") {} else if (id === "nope9") {} else if (id === "nope0") {} else if (id === "apple") {
  window.locatio.href = "http://apple.com/";
} else if (id === "yahoo") {
  window.locatio.href = "http://yahoo.com/";
}
ready
Switch
switch (id) {
case 'camelCase':
  window.locatio.href = "http://www.thecamelcase.com";
  break;
case 'jsFiddle':
  window.locatio.href = "http://www.jsfiddle.net";
  break;
case 'cricInfo':
  window.locatio.href = "http://www.cricinfo.com";
  break;
case 'apple':
  window.locatio.href = "http://www.apple.com";
  break;
case "nope1":
  break;
case "nope2":
  break;
case "nope3":
  break;
case "nope4":
  break;
case "nope5":
  break;
case "nope6":
  break;
case "nope7":
  break;
case "nope8":
  break;
case "nope9":
  break;
case "nope0":
  break;
case 'yahoo':
  window.locatio.href = "http://www.yahoo.com";
  break;

}
ready
hrefMap
var hrefMap = {
  camelCase: "http://www.thecamelcase.com",
  jsFiddle: "http://www.jsfiddle.net",
  cricInfo: "http://www.cricinfo.com",
  apple: "http://www.apple.com",
  nope1: "",
  nope2: "",
  nope3: "",
  nope4: "",
  nope5: "",
  nope6: "",
  nope7: "",
  nope8: "",
  nope9: "",
  nope0: "",
  yahoo: "http://www.yahoo.com"
};
window.locatio.href = hrefMap[id];
ready
Direct location.href
window.locatio.href = {
  camelCase: "http://www.thecamelcase.com",
  jsFiddle: "http://www.jsfiddle.net",
  cricInfo: "http://www.cricinfo.com",
  apple: "http://www.apple.com",
  nope1: "",
  nope2: "",
  nope3: "",
  nope4: "",
  nope5: "",
  nope6: "",
  nope7: "",
  nope8: "",
  nope9: "",
  nope0: "",
  yahoo: "http://www.yahoo.com"
}[id];
ready
Ternary Operator
(id === 'camelCase') ? (window.locatio.href = "http://www.thecamelcase.com") : (id === 'jsFiddle') ? (window.locatio.href = "http://www.jsfiddle.net") : (id === 'cricInfo') ? (window.locatio.href = "http://www.cricinfo.com") : (id === 'apple') ? (window.locatio.href = "http://www.apple.com") :  (id === 'nope1') ? null : (id === 'nope2') ? null : (id === 'nope3') ? null : (id === 'nope4') ? null : (id === 'nope5') ? null : (id === 'nope6') ? null : (id === 'nope7') ? null : (id === 'nope8') ? null : (id === 'nope9') ? null : (id === 'nope0') ? null : (id === 'yahoo') ? (window.locatio.href = "http://www.yahoo.com") : null;
ready

Revisions

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