in vs hasOwnProperty vs propdef

JavaScript performance comparison

Revision 4 of this test case created

Info

Tests which is faster.

Preparation code

<script>
  var attrFn = {
   name: true,
   val: true,
   css: true,
   html: true,
   text: true,
   data: true,
   width: true,
   height: true,
   offset: true
  };
  var name = "data";
  var none = "unknown";
  var res;
</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
in
name in attrFn;
pending…
hasOwnProperty
attrFn.hasOwnProperty(name);
pending…
prop
attrFn[name];
pending…
property
attrFn.name;
pending…
in ok
if( ( name in attrFn ) === true ){
    res = 1;
}
pending…
hasOwnProperty ok
if( attrFn.hasOwnProperty(name) === true ){
    res = 1;
}
pending…
prop ok
if( attrFn[name] !== undefined ){
    res = 1;
}
pending…
property ok
if( attrFn.name !== undefined ){
    res = 1;
}
pending…
in fail
if( (none in attrFn) === false ){
    res = 1;
}
pending…
hasOwnProperty fail
if( attrFn.hasOwnProperty(none) === false ){
    res = 1;
}
pending…
prop fail
if( attrFn[none] === undefined ){
    res = 1;
}
pending…
property fail
if( attrFn.none === undefined ){
    res = 1;
}
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