Почему точка с запятой в шаблоне ejs выдает ошибку

В следующем коде, если точка с запятой удалена, механизм шаблонов не выдает ошибку, иначе выдается ошибка.

<ul>
  <% for (i = 0; i < array.length; ++i) { %>
      <%= JSON.stringify(array[i]); %>
  <% } %>
</ul>

Хотя синтаксически правильная точка с запятой, почему движок шаблонов выдает ошибку?

1 ответ

Решение

Как сказал @torazaburo, содержимое между <=% а также %> это выражение, которое анализируется ejs. Однако подумайте об этом так:

Ваша цель - сделать содержимое, возвращенное из JSON.stringify на страницу правильно? Так что в этом случае думайте о выражениях ejs как о неявно вызывающих .toString() на результат выражения, а затем вставив эту строку на страницу. Добавляя точку с запятой, вы завершаете оператор, не присваивая возвращаемое значение чему-либо.

Другие вопросы по тегам