Script Preparation code:
Tests:

Historical Performance Data aggregated from 18 community runs

Desktop Results:
Chrome 12 runs
for...of - keys (ES6)
9K/s
Object.keys+forEach (ES5)
9K/s
for...of - values (ES6)
8K/s
Object.entries (ES8)
7K/s
for...of - entries (ES8)
7K/s
for...in
6K/s

Fastest: for...of - keys (ES6) (1.5x faster)

View exact numbers
  • for...of - keys (ES6): 9,017 ops/sec
  • Object.keys+forEach (ES5): 8,923 ops/sec
  • for...of - values (ES6): 7,703 ops/sec
  • Object.entries (ES8): 6,775 ops/sec
  • for...of - entries (ES8): 6,751 ops/sec
  • for...in: 6,097 ops/sec
Firefox 6 runs
for...of - values (ES6)
119K/s
Object.keys+forEach (ES5)
53K/s
for...in
49K/s
Object.entries (ES8)
49K/s
for...of - keys (ES6)
48K/s
for...of - entries (ES8)
45K/s

Fastest: for...of - values (ES6) (2.6x faster)

View exact numbers
  • for...of - values (ES6): 119,242 ops/sec
  • Object.keys+forEach (ES5): 52,833 ops/sec
  • for...in: 49,135 ops/sec
  • Object.entries (ES8): 48,848 ops/sec
  • for...of - keys (ES6): 48,197 ops/sec
  • for...of - entries (ES8): 45,138 ops/sec

Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.

Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results
  • Test case name Result
    for...in
    Object.keys+forEach (ES5)
    for...of - keys (ES6)
    for...of - values (ES6)
    for...of - entries (ES8)
    Object.entries (ES8)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 7 months ago)
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36
Chrome Mobile 143 on Android
View result in a separate tab
Object.keys+forEach (ES5)
9K/s
for...of - keys (ES6)
9K/s
for...in
6K/s
for...of - values (ES6)
3K/s
for...of - entries (ES8)
3K/s
Object.entries (ES8)
3K/s
View exact numbers
Test name Executions per second
Object.keys+forEach (ES5) 9,084 Ops/sec
for...of - keys (ES6) 8,973 Ops/sec
for...in 6,012 Ops/sec
for...of - values (ES6) 3,268 Ops/sec
for...of - entries (ES8) 2,660 Ops/sec
Object.entries (ES8) 2,633 Ops/sec