Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Chrome 130
Mac OS X 10.15.7
Desktop
5 months ago
Test name Executions per second
Remove firstChild 11330552.0 Ops/sec
Remove lastChild 11330780.0 Ops/sec
firstChild.remove 11191942.0 Ops/sec
lastChild.remove 11119986.0 Ops/sec
replaceChildren 4680685.5 Ops/sec
HTML Preparation code:
AخA
 
1
<div id='messages'></div>
Script Preparation code:
 
const html = [];
for(i=0; i<1000; i++) {
    html.push("<span>Text</span>");
}
document.getElementById("messages").insertAdjacentHTML('beforeend', html)
Tests:
  • Remove firstChild

     
    let list = document.getElementById("messages");
    while (list.firstChild) {
        list.removeChild(list.firstChild);
    }
  • Remove lastChild

     
    let list = document.getElementById("messages");
    while (list.firstChild) {
        list.removeChild(list.lastChild);
    }
  • firstChild.remove

     
    let list = document.getElementById("messages");
    while (list.firstChild) {
        list.firstChild.remove();
    }
  • lastChild.remove

     
    let list = document.getElementById("messages");
    while (list.lastChild) {
        list.lastChild.remove();
    }
  • replaceChildren

     
    let list = document.getElementById("messages");
    list.replaceChildren();