举例来说,标签模板里面可以嵌入 LaTEX 语言。
模板字符串会将\u00FF
和\u{42}
当作 Unicode 字符进行转义,所以\unicode
解析时报错;而会被当作十六进制字符串转义,所以\xerxes
会报错。也就是说,\u
和\x
在 LaTEX 里面有特殊含义,但是 JavaScript 将它们转义了。
上面代码中,模板字符串原本是应该报错的,但是由于放松了对字符串转义的限制,所以不报错了,JavaScript 引擎将第一个字符设置为undefined
,但是raw
属性依然可以得到原始字符串,因此函数还是可以对原字符串进行处理。