fn`str`
感觉是将str字符串作为参数给fn,可是又不太对
称为 带标签的模板
MDN中有描述, https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...
写个例子在F12里运行下就明白啦
function myTag(strings, personExp, ageExp) {
// strings 是一个字符串数组,包含模板字面量中的文本部分
// personExp 和 ageExp 是模板字面量中的表达式
// 这里可以对这些参数进行任何操作,并返回一个值
console.log(strings, personExp, ageExp)
}
const person = "Mike";
const age = 28;
const output = myTag`That ${person} is a ${age}.`;
确实是传参,但不是把 str 字符串作为参数,而是把模板字符串里的占位符当参数(不过你这个模板字符串里也没有占位符就是了)。
看 MDN 上给的例子吧,会比较具体一些:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...
阅读“带标签的模板”这一小节就好。
带标签的模板
``的日常使用方式是这样,搞占位符替换用的。
> const userName = 'bob'
undefined
> const welcome = `hello, ${userName}`
undefined
> console.log(welcome)
hello, bob
你说的这种用法,参见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
这种JavaScript写法被称为"标签模板"(Tagged Template)。它是ES6(ECMAScript 2015)中引入的新特性。