据我所知,html/javascript 的执行顺序是串行的(与所有编程语言一样),这意味着浏览器会逐行读取 html/javascript 代码并对其进行解释。
这就是为什么一些 javascript 程序员将标签放在正文末尾的原因 - 以确保加载整个 DOM 并且他们现在可以访问他们想要的任何元素。他们就是这样做的——
<html>
...
<body>
...
<script> //whatever code you want to put
</script>
</body>
我想对此进行测试,所以我编写了以下代码
<html>
<head>
</head>
<body>
<script>
var elm=document.getElementById("myp");
alert(elm.innerHTML);
</script>
<p id="myp"> well this is darned interesting </p>
</body>
</html>
如您所见,我已将脚本放在定义 p 元素之前,并且脚本正在尝试访问它。我以为我会得到一个错误,因为 p 不应该被定义,但我得到了“好吧,这太有趣了”(p 的值)。当我将脚本放在 head 元素中时,也会发生同样的事情。(使用 chrome 和 firefox 进行测试)。
任何人都可以对发生的事情有所了解吗?