模板字符串标记(模版标记)

130 阅读1分钟

一般不推荐这么用,不符合开发习惯,或者容易影响开发和维护的不推荐(当然部分场景可能就是这么用好一些,因此还是要了解的)

模版名称`字符串`
例如:
tag`hello`
tag就是模版名称,`hello`就是正常声明的字符串,只不过使用``而不是'' "",其是可占位的

实际上模版名称就是一个函数名,只要实现了函数,后面的字符串就会被当参数传入调用,占位内容也会被放到后面

//string就是原本的string, ...value保存的就是${}占位符的内容
function tag(strings, ...values) {
    console.log(strings)
    return tag
}

//hello就是我们tag调用后返回的内容(这里返回的是tag函数指针因此打印function,可以返回其他内容)
const hello = tag`my name is 剪刀石头布`

console.log(hello)

返回函数本身时,还可以链式调用,当然也可以返回别的类似函数

//tag结果返回tag,那么相当于还是有模版标记,就可以连续调用了,hello就是上面返回的tag函数指针了
const hello = tag`my``name``is``剪刀石头布`

console.log(hello)