Object.keys vs hasOwnProperty (v13)

Revision 13 of this benchmark created by vectest4dsdss on


Preparation HTML

<script>
  var obj = {a:1,b:2,c:3};
  var arr = ["a","b","c"];
  Object.defineProperty( obj, 'z', {value:26,enumerable:false} );
  
  var keys;
  var i;
  var name;
</script>

Setup

keys = null;

Test runner

Ready to run.

Testing in
TestOps/sec
hasOwnProperty
for( name in obj ) {
    if( obj.hasOwnProperty( name ) ) {
        obj[name];
    }
}
ready
Object.keys
keys = Object.keys( obj );
for( i = keys.length-1; i >=0 ; i--) {
    obj[ keys[ i ] ];
}
ready
Object.keys with forEach
keys = Object.keys( obj )
             .forEach(function( key, i ) {
                  obj[ key ];
             });
ready
simple for in
for( name in obj ) {
       obj[name];
}
ready
known keys
for( i = 0; i < arr.length; i++) {
    obj[ arr[ i ] ];
}
ready

Revisions

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