Ответ 1
Это называется Tagged Template в 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"
По сути, это просто пометка "1" с помощью функции console.log, как и для любой другой функции. Функции тегов принимают разобранные значения строк шаблона и значения отдельно, по которым могут выполняться дополнительные задачи.
Бабель переводит вышеуказанный код в
var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
Как вы можете видеть это в приведенном выше примере, после трансляции с помощью babel функции тегирования (console.log) передается возвращаемое значение следующего es6-> 5 переданного кода.
_taggedTemplateLiteralLoose (["1"], ["1"]);
Возвращаемое значение этой функции передается в console.log, который затем распечатает массив.