使用 MDN 文档中关于模板文字的示例,我们可以创建自定义“标签”函数。
var a = 5;
var b = 10;
function tag(strings, ...values) {
console.log(strings[0]);
console.log(strings[1]);
console.log(values[0]);
console.log(values[1]);
return strings[0] + ' ' + values[0] + ' ' + strings[1] + ' ' + values[1];
}
tag`Hello ${ a + b } world ${ a * b }`;
从这里开始,我们如何以与混合时输入的相同顺序构造strings
消息values
?
上面的标签函数在交换值/字符串顺序时会无法保持顺序,例如:
tag`Hello ${ a + b } world ${ a * b }`;
// swapped to
tag`${ a + b } hello ${ a * b } world`;
文档: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals