Каковы цели "тегов" в строках шаблонов с ES2015? - PullRequest
0 голосов
/ 18 сентября 2018

Я видел, что теги можно использовать таким образом, и они могут вам понадобиться по соображениям «безопасности», вот пример, который я получил:

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

Но какой смысл «помечать» некоторые строки, вам даже не нужно, чтобы для получения результата этого примера простая функция могла выполнить работу, могла быВы даете мне другой пример и какое-то объяснение с ним?

1 Ответ

0 голосов
/ 18 сентября 2018

Согласно ответам сообщества и документации:

  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 и т. д.

Это некоторый служебный инструмент, позволяющий легко заменять заполнители.

...