引入 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的语法和 no-substitution-templates .
除了 `
与 '
与 "
以及您已经提到的 ${
的特殊含义外,只有换行符在两种形式之间有所不同。我们可以忽略续行符(“转义换行符”),因为您的缩小器无论如何都会将它们删除,但是普通换行符在模板内有效而不是在字符串文字内,因此如果您来回转换您也必须关心这些。如果您的字符串文字包含 \n
,您甚至可以使用它们来保存另一个字节。
关于javascript - 将字符串分隔符更改为反引号 : possible impact?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40981357/