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

EJS使用else时出现编译错误Unexpected token 'else'问题咨询

问题根因

你触发报错的核心原因是将if的条件判断和后续代码块的起始大括号拆分到了两个独立的EJS脚本标签中:

<!-- 错误写法示例 -->
<%if(kindOfDay==="sunday"||kindOfDay==="saturday")%>
<%  { %>

EJS编译时会判定第一个标签里的if语句已经执行完毕、没有绑定对应代码块,后续出现的else找不到匹配的if语句,因此抛出Unexpected token 'else'的语法错误。

修复方案

将if的条件判断和代码块起始大括号放在同一个EJS标签内即可,修复后的完整代码如下:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>To Do List</title>
  </head>
  <body>
    <% if(kindOfDay==="sunday"||kindOfDay==="saturday") { %>
        <h1 style="color:pink;">Today is <%=kindOfDay%></h1>
    <% } else { %>
        <h1 style="color:blue">Today is <%=kindOfDay%></h1>
    <% } %>
  </body>
</html>
注意事项
  • EJS的流程控制语句(if/else、for循环等)的核心语法结构不要拆分到多个<% %>标签中,保证语法连贯性
  • 写完条件判断结构后要检查大括号配对、标签闭合,避免多余的换行拆分语法逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 01:57:00