tbody.removeChild(tbody.firstChild); ですべての tr が 削除されているのはなぜでしょうか?

このコードの意味は tbody に firstChild がある限り、それを消してくださいというものなので全て削除されます。
2021年6月17日
ユーザー
const tbody = document.querySelector('tbody');

while (tbody.firstChild) {
tbody.removeChild(tbody.firstChild);
 }

こちらの文は、tbodyfirstChildを削除して新規の月のみ表示させるためだと思うのですが、こちらをコメントにしてこの分の処理を無効にし、HTMLでのtbody内の挙動を確認したところ、tbody内に新規の月のtrが追加されていました。以下

<tbody>
    <tr> // ← firstChild
    <tr>
    <tr>
    <tr>
</tbody>

  ↓

<tbody>
    <tr> // ← firstChild
    <tr>
    <tr>
    <tr>
    <tr>
    <tr>
    <tr>
    <tr>
</tbody>

私の認識ではchildNode = 最初の子ノードなので、こちらだとtbodyfirstChildは印をしたところのみだと思っていました。
結果では、ひと月分のtrfirstChildで削除されているので、今回のfirstChildがなぜひと月分のtrを含んでいるのかわかりません。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?