EJS模板引擎中,<% %>
、<%= %>
和 <%- %>
是三种常见的模板语法结构。
1. <% results %>
不起任何多余作用。这种语法用于嵌入 JavaScript 代码片段到 HTML 文件中。它不会将任何内容输出到最终渲染的页面上,而是仅执行其中的逻辑操作。<% ... %>
负责控制流逻辑,而实际的内容由其他语法负责输出。
2.<%= results %>
HTML转义。这种语法会将 results
的值经过 HTML 转义 后输出到页面中。转义意味着特殊字符(如 <
, >
, &
等)会被替换为对应的 HTML 实体(如 <
, >
, &
),从而防止潜在的安全风险(如 XSS 攻击)。
3.<%- results %>
不进行任何HTML转义。这种语法类似于 <%= results %>
,但它不会对输出内容进行 HTML 转义,而是直接将其作为原始字符串插入到页面中。因此,这种方式适用于需要动态注入 HTML 片段的情况,但也可能带来安全风险。