原始字符串
在标签函数的第一个参数中,存在一个特殊的属性raw ,我们可以通过它来访问模板字符串的原始字符串。
function tag(strings, values) {
console.log(strings.raw[0]);
// "string text line 1 \\n string text line 2"
}
tag`string text line 1 \n string text line 2`;
另外,使用String.raw() 方法创建原始字符串和使用默认模板函数和字符串连接创建是一样的。
String.raw`Hi\n${2+3}!`;
// "Hi\\n5!"
安全性
由于模板字符串能够访问变量和函数,因此不能由不受信任的用户来构造。
"use strict"
let a = 10;
console.warn(`${a+=20}`); // "30"
console.warn(a); // 30