テンプレート リテラルに関する MDN ドキュメントの例を使用して、カスタムの「タグ」関数を作成できます。
var a = 5;
var b = 10;
function tag(strings, ...values) {
console.log(strings[0]);
console.log(strings[1]);
console.log(values[0]);
console.log(values[1]);
return strings[0] + ' ' + values[0] + ' ' + strings[1] + ' ' + values[1];
}
tag`Hello ${ a + b } world ${ a * b }`;
strings
ここから、 と混合したときに供給されたのと同じ順序でメッセージを構築するにはどうすればよいvalues
でしょうか?
上記のタグ関数は、次のように値/文字列の順序を入れ替えると順序を維持できません。
tag`Hello ${ a + b } world ${ a * b }`;
// swapped to
tag`${ a + b } hello ${ a * b } world`;
ドキュメント: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals