为什么js认为getElementsByClassName生成的集合的长度为0,而不是0,特别是当console.log时

我确实需要了解一些内容,无法通过谷歌搜索找到答案。

I have the following function

function collection() {
    var myCollection= document.getElementsByClassName("DivClassName");
    console.log(myCollection);
    console.log(myCollection.length);
    if (myCollection.length > 0) {
      console.log(myCollection);
    }
  }

The first console.log(myCollection) prints a HTMLCollection of length 3 with 3 divs having the same className.

The second console.log(myCollection.length) which comes just after the first one, prints 0.

The third console.log(myCollection) does not get printed at all which confirms that myCollection.length is not > 0.

我无法理解这种行为。第一个console.log如何显示3个元素的集合(准确,并且与我的DOM中具有相同className的元素数量相对应),而javascript在执行任何后续代码时会认为长度为0的相同集合?

如果有人可以解释我或将我引导到解释此问题的文档,我将非常感谢。

非常感谢。