最典型的是注释未闭合或含非法字符(如--)导致后续HTML被意外注释或解析中断,引发页面结构错乱。

HTML 注释不是“写上去就完事”,写错位置、嵌套、含非法字符,会直接让后续 HTML 解析异常——最典型的是 <!-- 后面跟了 -- 或 >,浏览器当场截断,后面标签裸露渲染,布局全乱。
注释语法必须严格匹配 <!-- -->,中间禁用 -- 和 >
HTML 解析器对注释边界极其敏感:<!-- 开头必须紧贴,--> 结尾也必须紧贴,中间任何地方出现连续两个短横线(--)或单独的 >,都会被当作注释结束信号。哪怕只是文案里写了“前端——从入门到放弃”,中文破折号(—)没问题,但若误粘贴成英文双短横(--),就会崩。
- ✅ 安全写法:
<!-- 用户登录表单开始 --> - ❌ 危险写法:
<!-- 配置项:max-retry--5 -->(--5触发提前闭合) - ❌ 更隐蔽的错:
<!-- IE10 <= 不支持 flex -->(>单独出现,解析器认为注释已结束) - 临时屏蔽代码时,优先用编辑器快捷键(如 VS Code 的
Ctrl+/),它会逐行加<!--和-->,不引入内部--
别在 <script></script> 或 <style></style> 里套 HTML 注释
老教程里常见 <script><!-- ... //--></script> 这种写法,是为兼容 Netscape 2/IE2 等远古浏览器设计的。现代所有浏览器(Chrome、Firefox、Safari、Edge)原生支持 <script></script> 和 <style></style> 内容,根本不需要外层 HTML 注释包裹。反而可能干扰 JS 执行——比如注释意外吞掉 关闭标签。
- ✅ 正确:
<script>console.log('ok');</script> - ❌ 过时且有害:
<script><!-- console.log('ok'); //--></script> - 如果脚本里要写注释,用 JS 原生语法:
//或/* */,它们在<script></script>内部完全合法
注释不是条件编译,也不会影响 DOM 行为
有人把注释当开关,写 <!-- DEV-ONLY --><script src="dev.js"></script><!-- END-DEV-ONLY -->,指望靠这个控制资源加载——完全无效。浏览器照常下载并执行 <script></script>,注释只起说明作用,不改变任何运行时行为。
立即学习“前端免费学习笔记(深入)”;
- 注释节点确实存在于 DOM 中(
node.nodeType === 8),但仅用于调试或工具链识别,JS 无法靠它跳过逻辑 - 大量无意义注释会略微增大 HTML 体积,影响首屏加载,尤其在 SSR 或静态站点生成时不可忽视
- 某些构建工具(如
html-webpack-plugin)依赖特定格式注释做注入标记(如<!-- htmlWebpackPlugin.tags -->),这类注释不能删,但普通说明性注释建议上线前移除
最容易被忽略的一点:注释里的 和 <code>> 虽然不被解析为标签,但为防解析器混淆,仍应转义为 < 和 >;更关键的是,团队协作中,注释一旦写上,就得和代码同步更新——过期注释比没注释更危险。



















