Javascript 为什么正文标记后的脚本标记在子节点中计数

Javascript 为什么正文标记后的脚本标记在子节点中计数,javascript,html,child-nodes,Javascript,Html,Child Nodes,这是一个简单的HTML和JS代码,但为什么脚本在body标记后加上标记,算作body的childNodes 我正在FF 35中尝试 正如其他人指出的那样,脚本标记必须在HTML标记中,否则浏览器将尝试为您修复它,并带来不良后果。这是破坏HTML的。。。浏览器会尽其所能将其破坏,以使其正常工作-查看DOM资源管理器中的文档解释。当您编写无效html时,浏览器会尝试将其转换为有效html。在这种情况下,它会将脚本放入正文中。脚本通常放在SectionScript中。如果适用,脚本应该放在end bo

这是一个简单的HTML和JS代码,但为什么脚本在body标记后加上标记,算作body的childNodes

我正在FF 35中尝试


正如其他人指出的那样,脚本标记必须在HTML标记中,否则浏览器将尝试为您修复它,并带来不良后果。

这是破坏HTML的。。。浏览器会尽其所能将其破坏,以使其正常工作-查看DOM资源管理器中的文档解释。当您编写无效html时,浏览器会尝试将其转换为有效html。在这种情况下,它会将脚本放入正文中。脚本通常放在SectionScript中。如果适用,脚本应该放在end body标记之前。
<!DOCTYPE HTML>
<html>
    <head>
    </head>
    <body id='body'>This is only text node</body>
</html>

<script>
    var b;
</script>
<script>
    var b = document.getElementById('body');
    console.log(b.childNodes.item(3).textContent);
</script>