問題タブ [tagged-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - テンプレート リテラルと括弧のない関数呼び出し
テンプレート リテラルをパラメーターとして使用する場合、ES6 では括弧なしで関数呼び出しを行うことができることを最近知りました。例えば
ただし、この機能に関するいくつかの記事を読んだ後、JS がこれらの呼び出しを処理する方法の背後にあるロジックに関する情報はほとんど得られませんでした。
コードのいくつかの順列をいじった後、関数内でテンプレート リテラルがどのように呼び出されたときにどのように分割されるかのパターンをまとめるのにまだ苦労しています。
上記のコードで何が起こるかは簡単です。文字列リテラルは、最初で唯一の要素が文字列である配列として受け取られます。
少し混乱するのは、テンプレート内で式を使い始めるとです。例えば
...values
そのため、パーツがすべての式を分解しているように見えます。しかし、なぜstr
配列のそれらの場所に空の文字列があるのでしょうか?
ここで従うパターンを完全には把握していません。誰かがこの機能を説明できますか? または、良い記事を教えてください。
javascript - これは ES2015 タグ付きテンプレートの正しい構文ですか?
このページには、次のコード スニペット (ここにもあります) があり、テンプレート文字列の使用方法を示しています。唯一の説明またはコンテキストは、最初のコメントです。これは、それ自体で私にとって意味があります。ただし、スニペット自体はまだ謎です。
私は文字列リテラル自体に本当に問題はありません。私を混乱させているのはコンテキストです。
GET はカスタム関数ですか? fetch() をロードする可能性がありますか? もしそうなら、GETとPOSTのメソッド名に完全な大文字を使用しても問題ない命名規則はどこかにありますか? このようなスニペットをどこで使用しますか? GET と呼ばれる何らかの関数に挿入する場合、関数がそれを非常に多くの断片に分割しようとしているのに、なぜここですべてをこのようにまとめる必要があるのでしょうか?
そして最後に - 最後の括弧はどうなっていますか? これは本当に私に質問をさせているビットです。文字列リテラルの後に括弧が続く例は他に見つかりません。この構文で何が起こっているのでしょうか? 私はこれを探すのに長い時間を費やしたので、それは間違いだと言いたくなる. この最後のビットが欠落している場合、すべてがタグ関数として意味があります。