Object.keys vs hasOwnProperty (v2)

Revision 2 of this benchmark created on


Preparation HTML

<script>
  var obj = {a:1,b:2,c:3,d:4,e:5,f:6,g:7,h:8,i:9,j:10};
  
  Object.defineProperty( obj, 'z', {value:26,enumerable:false} );
  
  var keys;
  var i;
  var name;
  var len;
</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 ), len = keys.length;
for( i = 0; i < len; i++ ) {
    obj[ keys[ i ] ];
}
ready
Object.keys with forEach
keys = Object.keys( obj )
             .forEach(function( key, i ) {
                  obj[ key ];
             });
ready

Revisions

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