javascript中不同类型的执行

javascript中不同类型的执行,javascript,getelementbyid,Javascript,Getelementbyid,我试图运行一个程序,但当我将javascript getElementById方法放在标题部分时,代码不会执行,但当我将其放在html下面的正文部分时,代码就会执行。请告诉我原因 <html> <head> <script type="text/javascript"> document.getElementById("addition").innerHTML= 5+6; </script> </head&g

我试图运行一个程序,但当我将javascript getElementById方法放在标题部分时,代码不会执行,但当我将其放在html下面的正文部分时,代码就会执行。请告诉我原因

<html>
<head>
    <script type="text/javascript">
        document.getElementById("addition").innerHTML= 5+6;

    </script>
</head>
<body>
<span id="demo"> 5+6 =</span><span id="addition"></span>

document.getElementById(“addition”).innerHTML=5+6;
5+6 =

当您在页眉中添加Javascript代码时,它会在正文之前运行。因此,在那一刻,还没有id为“addition”的元素

为了保持简单,您应该将脚本添加到标记的底部


你好,世界
5+6 =
document.getElementById(“addition”).innerHTML=5+6;

您能说出什么是“sdfdsfdsfds90”吗?很可能你不能,在我告诉你之前。。。同样代表JS,当脚本现在处于
head
中时,您试图引用一个尚未创建的元素。如果我将相同的代码放在外部文件中,并将文件链接到header部分,则会发生相同的错误。
head
元素保证被解析,并且其中的脚本保证在开始解析主体之前被执行,这就是为什么它是“head”。您可以使用defer或async属性将外部脚本添加到头部,然后将执行延迟到
正文
准备就绪的时间。感谢您宝贵的回答!!如果这样的回答很可能已经被问及多次,那么你应该考虑找到一个好的副本,而不是为它写另一个答案。如果你认为你的答案在重复的答案中缺少一些额外的重要信息,那么你应该考虑写一份答案。