インターネットで見つけたコードを理解しようとしています。whileループでは、なぜそれが無限ループではないのか理解できません。たとえばに変更するとcalculator.appendChild、console.log永久に実行されます。
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;
基本的に、空ではないサイトには常に最初の子がいるため、条件は常にtrueです。誰かがこの方法でそれが永遠に実行されない理由を説明できますか?
calculator要素は、DOMの外側にあり、一方、ループは、単にのすべての子上を移動bodyするcalculatorので、ある時点で、body空になり、ループが終了します。ここで重要なのは、ループcalculator自体の子ではないことbodyです。