Javascript 多行字符串问题

Javascript multiline string issue

我的代码是:

let testStr = "Asdfads";
let htmlStr = `<script>${ testStr }</script>`; // but it works with: <div>${ testStr }</div>
console.log(htmlStr);

它 returns 我出错了:

Uncaught SyntaxError: Unterminated template literal

我做错了什么?我运行它在最新的Chrome。

问题出在您的 "</script>" 上:它结束了嵌入它的脚本元素(因此 "unterminated template literal")。

一个解决办法就是写成另一种形式,比如

`</` + "script>"

let htmlStr = `<script>${ testStr }</${"script"}>`;

let htmlStr = `<script>${ testStr }</\script>`;

(任何其他不包含 "</script>" 的结构都可以)。

这与模板或字符串无关:这是在 HTML 页面被读取时读取的,甚至在 javascript 被解析之前很久。

关闭脚本标签应该被转义。

let htmlStr = `<script>${ testStr }<\/script>`;

会起作用