Ich versuche einen Code zu verstehen, den ich im Internet gefunden habe. Ich verstehe in der while-Schleife nicht, warum es keine Endlosschleife ist. Wenn Sie das änderncalculator.appendChild , z console.log. B. läuft es für immer.
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;
Grundsätzlich gibt es immer ein erstes Kind an einem nicht leeren Ort, daher ist die Bedingung immer wahr. Kann jemand erklären, warum es so nicht für immer läuft?
calculatorElement befindet sich außerhalb des Doms, und die while-Schleife bewegt sich einfach über alle untergeordneten Elemente vonbodytocalculator, sodass sie irgendwannbodyleer ist und die Schleife endet. Der Schlüssel hier ist wohl, dass ercalculatorselbstbodywährend der Schleife kein Kind ist .