SCRIPT 标签应根据功能和性能需求选择位置。推荐将大多数脚本置于 body 底部以确保 dom 加载完成并避免阻塞渲染,如操作 DOM 的 m ain.js;对于需提前执行的脚本,可放在 head 中,尤其适用于使用 defer 属性的模块化脚本或 异步 加载的第三方代码;通过 async 实现独立脚本异步执行,defer 实现延迟有序执行,提升性能;内联脚本若操作 DOM 须确保执行时机。关键在于判断脚本是否依赖 DOM 及是否需阻塞渲染,合理布局可兼顾功能与性能。

在 html 文档中,SCRIPT 标签的放置位置 应根据脚本的功能和性能需求来决定。最规范的做法是:将大多数 javaScript 脚本放在页面底部, 即在 </body> 标签之前,而某些特殊用途的脚本可以放在 <head> 中。
1. 放在 body 底部(推荐多数情况)
将 SCRIPT 标签放在 </body> 之前是最常见的最佳实践,原因如下:
示例:
<body> <h1> 页面内容 </h1> <p> 一段文字 </p> <script src="main.js"></script> </body>
2. 放在 head 中(特定场景)
某些脚本需要尽早加载或影响页面初始化行为,适合放在 <head> 中:
示例:
3. 使用 async 和 defer 优化加载
通过属性控制脚本加载行为,能进一步提升性能:
立即学习 “ 前端免费学习笔记(深入)”;
- async:异步下载并立即执行,适用于独立脚本(如广告、分析)
- defer:延迟执行,在文档解析完成后、DOMContentLoaded 前按顺序执行,适合依赖 DOM 的脚本
带 async 或defer的脚本可安全放在 <head> 中。
4. 内联脚本的位置建议
少量内联脚本(如数据初始化)可放在 <head> 中,但大量逻辑代码仍推荐外链并置于 body 底部。
若内联脚本操作 DOM,必须确保其出现在相关 HTML 之后,或使用事件监听等待页面加载。
基本上就这些。关键在于理解脚本是否依赖 DOM,以及是否希望它阻塞页面渲染。合理使用位置和属性,就能兼顾功能与性能。