大家应该都对es6新出的模板字符串比较熟悉,语义得出返回的是字符串,通过"``"将内容包裹起来形成一个新字符串.方便在于拼接参数直接"${参数}"就可以实现。
但这篇文章的重点在于:
字符串标记
const name1 = '运动';
const name2 = '游戏';
let str = tag `我喜欢${name1},也喜欢玩${name2}。`;
function tag(parts,...args) {
const arrValues = Array.from(arguments).slice(1);
let str = '';
for (let i = 0; i < args.length; i++) {
str += `${parts[i]}:${args[i]}`;
if (args.length-1 == i) {
str += parts[i + 1];
}
}
return str;
}
console.log(str);
通过列子分析,如果在模板字符串前面添加了一个函数.则会执行函数。且方法参数为:
tag(flag1,flag2,flag3,...);
flag=["我喜欢","。也喜欢玩","。"]
flag2=运动
flag3=游戏
都得到了所有参数,那岂不是可以为所欲为,所以这里就举例了一个简单例子,在每个参数前面添加一个:
,如果有兴趣的话自己下去试一下。