appenchild 在此日历中如何工作?

How does appenchild work in this calendar?

    for (var k = 1; k <= totalDay; k++) {
      var dayTd = document.createElement("td");
      var dayNum = document.createTextNode(k);
      dayTd.appendChild(dayNum);
      weekTr.appendChild(dayTd);
      if ((firstDay + k) % 7 == 0) {
        var weekTr = document.createElement("tr");
      }
      calendar.appendChild(weekTr);
    }

我是 JavaScript 的新手,尝试制作日历。我尝试打印出月份的天数,不小心发现以这种方式编写的代码有效!虽然它成功打印出结果,但我真的不明白 calendar.appendChild(weekTr) 在这个循环中是如何工作的。我想它应该在循环中的一个 tr 中保存七个 tds 然后将其保存到 table 之后放在循环之外,但它似乎不是那样。请参考下面的代码。

https://jsfiddle.net/cnymd6x5/

appendChild 的地方删除一个元素(如果它在任何地方),然后把它放在你要附加它的东西的末尾。

所以这个:

  1. 将 TR 放在 table 的末尾(假设它是在循环之前创建的并且不在 DOM 中的任何地方)。
  2. 删除 table 末尾的 TR,然后将其放回原处
  3. 删除 table 末尾的 TR,然后将其放回原处
  4. 删除 table 末尾的 TR,然后将其放回原处
  5. 删除 table 末尾的 TR,然后将其放回原处
  6. 删除 table 末尾的 TR,然后将其放回原处
  7. 删除 table 末尾的 TR,然后将其放回原处

…然后循环结束。