它被称为ES-6中的标记模板,可以在这里阅读有关它们的信息,有趣的是,我在聊天的星标部分找到了链接。
但是代码的相关部分如下(您基本上可以创建过滤排序)。
function tag(strings, ...values) {
assert(strings[0] === 'a');
assert(strings[1] === 'b');
assert(values[0] === 42);
return 'whatever';
}
tag `a${ 42 }b` // "whatever"
基本上,它只是用控制台.log功能标记“1”,就像使用任何其他功能一样。标记函数分别接受模板字符串的已分析值和可执行进一步任务的值。
Babel 将上述代码转译为
var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
正如您在上面的示例中看到的,在被 babel 转译后,标记函数 (console.log) 正在传递以下 es6->5 转译代码的返回值。
_taggedTemplateLiteralLoose( ["1"], ["1"] );
此函数的返回值将传递到控制台.log然后控制台将打印数组。