Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
Chrome 92
Windows
Desktop
3 years ago
Test name Executions per second
for-in 143.1 Ops/sec
for-of Object.keys 114.3 Ops/sec
for-of Object.keys includes 412.4 Ops/sec
for-of Object.keys hasOwnProperty 32.4 Ops/sec
Script Preparation code:
AخA
 
var obj = {
  'a': 1,
  'b': 1,
  'c': 1,
  'd': 1,
  'e': 1,
  'f': 1,
  'g': 1
};
Tests:
  • for-in

     
    for (let i=10000; i > 0; i--) {
      for (let key in obj) { 
        let x = key in obj;
      }
    }
  • for-of Object.keys

     
    for (let i=10000; i > 0; i--) {
      let keys = Object.keys(obj);
      for (let key of keys) {
        let x = key in obj;
      }
    }
  • for-of Object.keys includes

     
    for (let i=10000; i > 0; i--) {
      let keys = Object.keys(obj);
      for (let key of keys) {
        let x = keys.includes(key);
      }
    }
  • for-of Object.keys hasOwnProperty

     
    for (let i=10000; i > 0; i--) {
      let keys = Object.keys(obj);
      for (let key of keys) {
        let x = Object.hasOwnProperty(obj, key);
      }
    }