Script Preparation code:
x
 
var testObj = {};
for (let i = 0; i < 20; ++i) {
  testObj[`k${i}`] = i;
}
Tests:
  • Object keys foreach

     
    Object.keys(testObj).forEach(key => console.log(key));
  • for in

     
    for (let key in testObj) {
      console.log(key)
    }
  • for in hasOwnProperty

     
    for (let key in testObj) {
      if (testObj.hasOwnProperty(key)) {
        console.log(key);
      }
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object keys foreach
    for in
    for in hasOwnProperty

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
Chrome 105 on Windows
View result in a separate tab
Test name Executions per second
Object keys foreach 9706.9 Ops/sec
for in 10363.3 Ops/sec
for in hasOwnProperty 10101.6 Ops/sec