テンプレート リテラルをパラメーターとして使用する場合、ES6 では括弧なしで関数呼び出しを行うことができることを最近知りました。例えば
showstring`Hello World`;
ただし、この機能に関するいくつかの記事を読んだ後、JS がこれらの呼び出しを処理する方法の背後にあるロジックに関する情報はほとんど得られませんでした。
コードのいくつかの順列をいじった後、関数内でテンプレート リテラルがどのように呼び出されたときにどのように分割されるかのパターンをまとめるのにまだ苦労しています。
const showstring = (str) => {
console.log(str);
}
showstring`Hello World`;
上記のコードで何が起こるかは簡単です。文字列リテラルは、最初で唯一の要素が文字列である配列として受け取られます。
少し混乱するのは、テンプレート内で式を使い始めるとです。例えば
const showstring = (str, ...values) => {
console.log(str);
console.log(values)
}
const name = 'John'
showstring`Hello World ${name} ${name} ${1 + 2} and more`;
...values
そのため、パーツがすべての式を分解しているように見えます。しかし、なぜstr
配列のそれらの場所に空の文字列があるのでしょうか?
ここで従うパターンを完全には把握していません。誰かがこの機能を説明できますか? または、良い記事を教えてください。