考察点:特殊字符渲染、XSS 防御基础
HTML 中有些字符具有特殊含义,比如 < 和 > 用于定义标签,& 用于开始实体引用。如果我们要在页面上直接显示这些字符,就需要使用实体编码。
例如:
<写成<(Less Than)>写成>(Greater Than)&写成&(Ampersand)- 空格写成
(Non-Breaking Space),它可以防止文本在空格处换行。
为什么需要?
如果不转义,浏览器会把 < 解析为标签的开始,导致页面结构错乱。
安全角度:
在处理用户输入时,如果直接将用户输入的 <script> 插入 DOM,会导致 XSS 攻击。虽然现代框架(如 React, Vue)默认会对插值内容进行转义,但在原生 JS 操作 innerHTML 时,开发者必须手动进行实体编码或使用 textContent 来确保安全性。理解实体编码是理解 Web 安全的基础之一。