querySelectorAll + forEach vs getElementsByTagName + Array.from + forEach vs querySelectorAll + length + for vs getElementsByTagName + length + for vs querySelectorAll + dynamic length + for vs getElementsByTagName + dynamic length + forFastest: getElementsByTagName + length + for (4.3x faster)
4,954,010 ops/sec
2,847,124 ops/sec
1,796,150 ops/sec
1,427,745 ops/sec
1,379,798 ops/sec
1,158,273 ops/sec
Fastest: getElementsByTagName + length + for (35.7x faster)
19,842,378 ops/sec
4,592,327 ops/sec
3,588,473 ops/sec
2,866,115 ops/sec
724,435 ops/sec
555,533 ops/sec
Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.
| Test case name | Result |
|---|---|
| querySelectorAll + forEach | |
| getElementsByTagName + Array.from + forEach | |
| querySelectorAll + length + for | |
| getElementsByTagName + length + for | |
| querySelectorAll + dynamic length + for | |
| getElementsByTagName + dynamic length + for |
| Test name | Executions per second |
|---|---|
| ✓ getElementsByTagName + length + for | 8,539,310 Ops/sec |
| getElementsByTagName + dynamic length + for | 4,635,964 Ops/sec |
| querySelectorAll + length + for | 2,615,107 Ops/sec |
| getElementsByTagName + Array.from + forEach | 2,186,686 Ops/sec |
| querySelectorAll + dynamic length + for | 2,143,153 Ops/sec |
| querySelectorAll + forEach | 1,570,456 Ops/sec |