script 标签能否使用自闭合语法

解释为什么 script 标签不能使用自闭合写法

问题

能否使用自闭合 script 标签引入脚本文件?

解答

不能。自闭合标签来自 XML 语法,而不是 HTML 语法。

根据 HTML 规范,只有以下两类元素可以使用自闭合语法:

  1. Void elements(空元素):不需要结束标签的元素,如 <img><input><br>
  2. 外部元素:如 <svg><math>

script 标签不属于这两类,因此必须使用完整的开始和结束标签。

<!-- 正确写法 -->
<script src="app.js"></script>

<!-- 错误写法 -->
<script src="app.js"/>

使用自闭合写法可能导致浏览器解析错误,后续的 HTML 内容可能被当作脚本内容处理。

关键点

  • 自闭合语法来自 XML,不是 HTML 标准语法
  • 只有 void elements 和外部元素可以使用自闭合
  • script 标签必须使用完整的 <script></script> 形式
  • 错误使用自闭合可能导致浏览器解析异常