星海

HTML 与 CSS · 单选题 · 第 7 题

前端与全栈开发面试 · 第 7 题

关于 script 标签的 defer 和 async 属性,下列说法正确的是?

  1. Aasync 脚本在 HTML 解析完后按文档顺序执行;defer 脚本下载完就立即执行
  2. B带 defer 或 async 的脚本在下载期间都会阻塞 HTML 解析,两者只是执行的时机不同
  3. Casync 脚本一定在 DOMContentLoaded 事件之前执行,并且保持各脚本之间的顺序
  4. Ddefer 脚本在 HTML 解析完后按文档顺序执行;async 脚本下载完就执行,顺序不保证

答案

D D. defer 脚本在 HTML 解析完后按文档顺序执行;async 脚本下载完就执行,顺序不保证

解析

两者都是并行下载、不阻塞解析。defer 在解析完成后、DOMContentLoaded 之前依次执行,适合有依赖关系或需要操作 DOM 的脚本;async 下载完立即执行,可能在 DOMContentLoaded 之前或之后,适合统计这类独立脚本。type=module 的脚本默认就是 defer 行为。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。