You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EJS模板中%> <%语法含义及作用的技术咨询

EJS模板标签含义及作用解析

你看到的<%、%>、<%=是EJS模板引擎的语法(Express项目里常用EJS做页面渲染),用来在HTML里嵌入JavaScript逻辑,动态生成页面内容,具体含义如下:

  • <% ... %>:执行JavaScript代码,但不会把代码的结果输出到页面上。用来写循环、条件判断这类纯逻辑代码。
  • <%= ... %>:执行JavaScript表达式,把结果转义后输出到HTML中(比如变量值、函数返回值),能防止XSS攻击。

结合你的代码片段具体解释:

第一个循环代码的逻辑

<!--Creating the Article Cards-->
<% article.forEach(article =>{ %>

<div class="card mt-4"><%= article.title%></div>
<% }) %>
  1. <% article.forEach(article =>{ %>:用<% %>包裹forEach循环的启动逻辑,告诉EJS要遍历article数组里的每一项。
  2. <div class="card mt-4"><%= article.title%></div>:这是HTML结构,其中<%= article.title%>会把当前循环到的文章标题,转义后插入到卡片里,每循环一次就生成一个带标题的卡片。
  3. <% }) %>:用<% %>包裹forEach的闭合逻辑,结束循环。

第二个片段的标签作用

%>
<div class="card mt-4"><%= article.title%></div>
<% 
  • %>:是结束一段之前的JavaScript代码块,切换回HTML渲染模式,接下来的内容会直接作为HTML输出。
  • <%:是开启一段新的JavaScript代码块,切换到逻辑执行模式,后面可以继续写循环、判断这类JS逻辑(你的片段里没写完,应该还有后续代码)。

这种语法的核心目的是:让你能在HTML里直接写JS逻辑,动态生成页面内容——比如从MongoDB取到文章列表后,不用手动给每篇文章写HTML卡片,用循环就能自动生成所有卡片,大幅减少重复代码。

内容的提问来源于stack exchange,提问作者BVasa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:50:38