Script Preparation code:
AخA
 
var obj = {
    'a': 1,
    'b': 1,
    'c': 1,
    'd': 1,
    'e': 1,
    'f': 1,
    'g': 1,
    'h': 1,
    'i': 1,
    'j': 1,
    'k': 1,
    'l': 1,
    'm': 1,
    'n': 1,
    'o': 1,
    'p': 1,
    'q': 1,
    'r': 1,
    's': 1,
    't': 1,
    'u': 1,
    'v': 1,
    'w': 1,
    'x': 1,
    'y': 1,
    'z': 1,
};
Tests:
  • for-in

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

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

     
    for (let i=10000; i > 0; i--) {
      for (const key of Object.keys(obj)) {
        console.log(key);
      }
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    for-in
    Object.keys
    for..of Object.keys

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Mobile/15E148 Safari/604.1
Mobile Safari 15 on iOS 15.1
View result in a separate tab
Test name Executions per second
for-in 2.8 Ops/sec
Object.keys 2.3 Ops/sec
for..of Object.keys 2.6 Ops/sec