将字符串分隔符更改为反引号:可能产生的影响?

Sio*_*rki 7 javascript string syntax ecmascript-6 template-literals

ES6引入了由反引号分隔的模板字符串`.

在哪些情况下,用反引号替换字符串周围的单引号'或双"引号会产生不同的结果,否则会不安全?

作为操作的一部分,执行代码内现有反引号的转义.

// before
var message = "Display backtick ` on screen";

// after
var message = `Display backtick \` on screen`;
Run Code Online (Sandbox Code Playgroud)

我理解任何包含的字符串${...}都会失败,因为它会被错误地解释为占位符.还有其他相关模式吗?


上下文:这是用于开发自动处理输入代码的JS压缩工具.后者及其包含的字符串是用户提供的,因此我无法控制其内容.可以做出的唯一假设是它是有效的Javascript.

执行环境可以通过任何最近的浏览器或Node.js.

Ber*_*rgi 2

您可以检查字符串文字no-substitution-templates的语法。
除了您已经提到的`vs. 'vs."和特殊含义之外${,两种形式之间只有换行符不同。我们可以忽略行延续(“转义换行符”),因为你的压缩器无论如何都会将它们删除,但是普通换行符在模板内有效,而在字符串文字内无效,所以如果你来回转换,你必须关心这些出色地。如果您的字符串文字包含\n.