HTML文档头部的外部脚本是否保证在包含在主体中的脚本之前执行?

Mic*_*ang 1 javascript

我正在尝试尽可能早地在页面处理中在HTML页面中执行一些内联​​javascript,以便在外部.js文件中使用库函数.

虽然我总是看到将库脚本放在头脑中,并且正文中的客户端脚本似乎正常工作,但我无法在任何地方找到文档,说明文档头部中包含的外部脚本保证在脚本之前运行位于文档正文内(w3schools网站除外,但它们不算是一个有信誉的参考)

为了说明,我想知道HTML的User-Agent行为如下所示:

<html>
   <head>
      <script type="text/javascript src="libraryModule.js"></script>
   </head>
   <body>
      <script type="text/javascript">
         // is this guaranteed to run after the external script?
         // or is it possible this module that the external library
         // adds to the global namespace won't be there yet?
         var result = ModuleInExternalLibrary.DoLibraryThing();
      </script>
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这记录在哪里?我在W3C规范中找不到任何内容,或者总结了所有主流浏览器在这个领域的行为的好帖子.请提供链接.

我不得不等到onload事件触发才能保证外部脚本已执行?

egz*_*gze 5

出现在<script></script>标签之间的JavaScript语句按照外观顺序执行.所以是的,它是有保证的,除非你正在做一些聪明的事情,如延迟加载或类似的东西.

执行JavaScript程序