Default Values

Benchmark created by Rob O on


Description

Which method of applying default values is most efficient? Let's find out.

I should mention that the "or statement" method is fundamentally flawed. If, for example, param.var1 is set to false (and false is a valid parameter value), combined.var1 will be will incorrectly set to default.var1.

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
  var defaults = {
   var1: true,
   var2: 5,
   var3: "foo"
  };
  var params = {
   var1: false,
   var3: "newvalue",
   var4: 'rob'
  }
  var combined = {};
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery.extend()
var combined = jQuery.extend({}, defaults, params);
ready
Or Statement
combined.var1 = params.var1 || defaults.var1;
combined.var2 = params.var2 || defaults.var2;
combined.var3 = params.var3 || defaults.var3;
combined.var4 = params.var4 || defaults.var4;
ready
typeOf
combined.var1 = (typeof params.var1 == 'undefined') ? defaults.var1 : params.var1;
combined.var2 = (typeof params.var2 == 'undefined') ? defaults.var2 : params.var2;
combined.var3 = (typeof params.var3 == 'undefined') ? defaults.var3 : params.var3;
combined.var4 = (typeof params.var4 == 'undefined') ? defaults.var4 : params.var4;
ready

Revisions

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

  • Revision 1: published by Rob O on