Estou tentando entender um código que encontrei na internet. Eu não entendo no loop while, por que não é um loop infinito. Se alterar o calculator.appendChildpara, por exemplo, console.logele funciona para sempre.
window.location.hash = 1;
var calculator = document.createElement("div");
calculator.id = "height-calculator";
while (document.body.firstChild) {
calculator.appendChild(document.body.firstChild);
}
document.body.appendChild(calculator);
document.title = calculator.clientHeight;
Basicamente, sempre há um primeiro filho em um site não vazio, portanto a condição é sempre verdadeira. Alguém pode explicar por que dessa maneira não funciona para sempre?
calculatorelemento está fora do dom e o loop while simplesmente se move sobre todos os filhos debodytocalculator, portanto, em algum momento,bodyestará vazio e o loop terminará. A chave aqui, eu acho, é quecalculatorela própria não é filhabodydurante o loop.