MDN文档位置:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/template_strings
首先 ${表达式} 表示嵌套模板中的占位符。
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b} and not ${2 * a + b}.`);
// "Fifteen is 15 and not 20."
模板字符串要用反斜号``表示。
带标签的模板字符串(使用标签函数解析字符串)
标签函数的第一个参数包含一个字符串值的数组。其余的参数与表达式相关。
面试题1:
function getPerInfo(one,two,three) {
console.log(one);
console.log(two);
console.log(three);
}
const person="Tom";
const age =21;
getPerInfo `${person} is ${age} years old`
答案:
第一个参数为原始字符串的数组,这个数组中的元素为${ }
分割的字符串子集。注意若${ }
在模板字符串最左和最右,左边和右边会多出来一个""
。
此外,在第一个这个数组参数中有一个raw属性,这个属性保存的是模板字符串的原生字符串(未经过特殊字符替换的字符)。
function tag(strings) {
console.log(strings.raw[0]);
}
tag`string text line 1 \n string text line 2`;
// logs "string text line 1 \n string text line 2" ,
// including the two characters '\' and 'n'
面试题 2
console.log(`${(x=>x)('I love')} to program`)
这个(x=>x)('I love')
为立即执行函数,直接返回'I love',于是最后打印 I love to program