"tags" 在 ES2015 模板字符串中的用途是什么?
What are the purposes of "tags" in template strings with ES2015?
我看到标签可以这样使用,出于 "security" 的原因你可能需要它,无论如何,这是我得到的例子:
let person = 'Mike';
let age = 28;
function myTag(strings, personExp, ageExp) {
let str0 = strings[0]; // "that "
let str1 = strings[1]; // " is a "
let ageStr;
if (ageExp > 99) {
ageStr = 'centenarian';
} else {
ageStr = 'youngster';
}
return str0 + personExp + str1 + ageStr;
}
let output = myTag `that ${ person } is a ${ age }`;
console.log(output); // that Mike is a youngster
但是 "tagging" 一些字符串有什么意义,你甚至不需要它来获得这个例子的结果,一个简单的函数就可以完成这项工作,你能给我另一个例子和一些用它来解释?
根据此处的社区答案和文档:
- https://codeburst.io/javascript-es6-tagged-template-literals-a45c26e54761
- https://developers.google.com/web/updates/2015/01/ES6-Template-Strings
目的是您不必分别传递每个变量:
myTag`that ${ person } is a ${ age };`
而不是
myTag('that ', person, ' is a ', age);
在标记函数 "myTag" 中,您可以访问由占位符分隔的字符串的每个部分,例如 ${placecholder} 及其索引:string[0] // that, string[1] // 人等
这是一些实用工具,可让您轻松更换占位符。
我看到标签可以这样使用,出于 "security" 的原因你可能需要它,无论如何,这是我得到的例子:
let person = 'Mike';
let age = 28;
function myTag(strings, personExp, ageExp) {
let str0 = strings[0]; // "that "
let str1 = strings[1]; // " is a "
let ageStr;
if (ageExp > 99) {
ageStr = 'centenarian';
} else {
ageStr = 'youngster';
}
return str0 + personExp + str1 + ageStr;
}
let output = myTag `that ${ person } is a ${ age }`;
console.log(output); // that Mike is a youngster
但是 "tagging" 一些字符串有什么意义,你甚至不需要它来获得这个例子的结果,一个简单的函数就可以完成这项工作,你能给我另一个例子和一些用它来解释?
根据此处的社区答案和文档:
- https://codeburst.io/javascript-es6-tagged-template-literals-a45c26e54761
- https://developers.google.com/web/updates/2015/01/ES6-Template-Strings
目的是您不必分别传递每个变量:
myTag`that ${ person } is a ${ age };`
而不是
myTag('that ', person, ' is a ', age);
在标记函数 "myTag" 中,您可以访问由占位符分隔的字符串的每个部分,例如 ${placecholder} 及其索引:string[0] // that, string[1] // 人等
这是一些实用工具,可让您轻松更换占位符。