JavaScript での関数呼び出しのバッククォート: タグ付きテンプレートの謎を解く
console.log1` などのバッククォートを組み込んだ JavaScript コードを実行すると、一部のユーザー予期しない出力が発生しました。この動作は、カスタマイズされた文字列操作を可能にする ES-6 のタグ付きテンプレートに起因します。
タグ付きテンプレートについて
タグ付きテンプレートは、次のような特別な関数が前に付けられたテンプレート リテラルです。コンソール.ログ。これらの関数は、テンプレート文字列の解析された値を、未解析の未加工の値とともに受け取ります。
console.log1 の場合、タグ関数は console.log です。これは、strings (文字列リテラルの配列) と value` (補間値の配列) の 2 つのパラメーターを受け入れます。
出力の説明
When console.log1`が実行されると、JavaScript エンジンは ES6 コードを ES5 にトランスパイルします。トランスパイルされたコードは次のようになります。
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
ここで、_taggedTemplateLiteralLoose は、生の文字列リテラルを文字列配列の生のプロパティに割り当てるトランスパイルされた関数です。
タグ付きテンプレート リテラルであるため、 、次の構造を持つ配列を返します:
["1", { raw: ["1"] }]
Whenこの配列は console.log に渡され、配列自体がログに記録され、次のような出力が観察されます。
["1", { raw: ["1"] }]
タグ付きテンプレートの利点
タグ付きテンプレートにはいくつかの機能があります。従来の文字列操作方法と比較した利点:
以上がバッククォートは JavaScript 関数呼び出しにどのような影響を与えますか? タグ付きテンプレートとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。