将字符串定界符更改为反引号:可能的影响?

changing string delimiters to backticks : possible impact?

ES6 引入 template strings 由反引号分隔 `

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

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

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

// after
var message = `Display backtick \` on screen`;

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


上下文:这是针对自动处理输入代码的development of a JS compression tool。后者及其包含的字符串是用户提供的,因此我无法控制其内容。唯一可以做出的假设是它是有效的 Javascript.

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

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

,您甚至可以使用它们来保存另一个字节