带标签的模板字符串
模板字符串的一种更高级的形式称为带标签的模板字符串。它允许您通过标签函数修改模板字符串的输出。标签函数的第一个参数是一个包含了字符串字面值的数组(在本例中分别为“Hello”和“world”);第二个参数,在第一个参数后的每一个参数,都是已经被处理好的替换表达式(在这里分别为“15”和“50”)。 最后,标签函数返回处理好的字符串。在后面的示例中,标签函数的名称可以为任意的合法标示符。
var a = 5;
var b = 10;
function tag(strings) {
console.log(arguments); // { '0': [ 'Hello ', ' world ', '' ], '1': 15, '2': 50 }
console.log(strings[0]); // "Hello "
console.log(strings[1]); // " world "
console.log(arguments[1]); // 15
console.log(arguments[2]); // 50
return "Hubwiz!";
}
console.log(tag`Hello ${ a + b } world ${ a * b}`);
// "Hubwiz!"
我们打印出arguments可以看到 处理的参数为
{ '0': [ 'Hello ', ' world ', '' ], '1': 15, '2': 50 }
我们已有的Hello和world参数放到一个数组中,后续处理的参数依次生成。