我
请描述`<script>`、`<script async>`和`<script defer>`的区别。
难度:
<script>
- HTML 解析中断,脚本被提取并立即执行。执行结束后,HTML 解析继续。<script async>
- 脚本的提取、执行的过程与 HTML 解析过程并行,脚本执行完毕可能在 HTML 解析完毕之前。当脚本与页面上其他脚本独立时,可以使用async
,比如用作页面统计分析。<script defer>
- 脚本仅提取过程与 HTML 解析过程并行,脚本的执行将在 HTML 解析完毕后进行。如果有多个含defer
的脚本,脚本的执行顺序将按照在 document 中出现的位置,从上到下顺序执行。
注意:没有src
属性的脚本,async
和defer
属性会被忽略。