来自马修·弗拉申的回答:
Element.children 仅返回元素子级,而 Node.childNodes 返回所有节点子级。请注意,元素是节点,因此两者都可用于元素。
<!doctype html>是一个节点,是一个 DOM 树,所以它列在 中childNodes,但它是一个 DocumentType 节点,而不是 Element,所以它不会出现在 中children。
children您在查看的规范中没有找到的原因可能是因为它相对较新 - 它是在DOM4中添加的(仅在 2015 年才成为 W3C 推荐标准)。
如果你需要遍历ElementDOM 树中的 s(忽略其他节点类型——比如文本节点),你会发现children和相关的 API(first/lastElementChild、previous/nextElementSibling)更方便,但由于它们较新,旧浏览器并不普遍支持这些 API,因此您应该查阅兼容性表和/或使用 polyfill。