ES2015模板字符串中“标签”的用途是什么?

问题描述 投票:4回答:1

我看到标签可以像这样使用,你出于“安全”的原因可能需要它,无论如何,这是我得到的例子:

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

但是“标记”某些字符串的重点是什么,你甚至不需要那个来获得这个例子的结果,一个简单的函数可以完成这项工作,你能给我一个其他的例子和一些解释吗?

javascript ecmascript-6 template-strings
1个回答
0
投票

根据社区的答案和文档:

  1. https://codeburst.io/javascript-es6-tagged-template-literals-a45c26e54761
  2. 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] // person等。

它是一些实用工具,可以让您轻松替换占位符。

© www.soinside.com 2019 - 2024. All rights reserved.