ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で `console.log\\`1`` が配列を返すのはなぜですか?

JavaScript で `console.log\\`1`` が配列を返すのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-23 06:24:18675ブラウズ

Why Does `console.log\`1`` Return an Array in JavaScript?

JavaScript でのバッククォートと関数呼び出し

JavaScript でバッククォート () を使用して文字列リテラルをラップすると、次のような予期しない動作が発生する可能性があります。タグ付きテンプレートが呼び出されます。この場合、console.log1 の出力は「console.log1`nVM12380:2 ["1", raw: Array[1]]」となりました。

ES6 のタグ付きテンプレート

その説明は、ES6 で導入されたタグ付きテンプレートの概念にあります。タグ付きテンプレートを使用すると、テンプレート文字列に関数のタグを付けることができます。文字列が関数で使用される場合、関数はテンプレート文字列の解析された値と文字列内の値を受け取ります。

タグとしての関数

示されている例では、console.log がタグ関数として使用されています。これは、解析された文字列値と配列としてのリテラル文字列値を使用して事実上呼び出されます。その後、関数はこれらの値を操作して新しい文字列を返したり、さらなる処理のためにそれらの値を渡したりできます。

返された配列

console.log 関数は特別な処理を実行しません。値を処理するため、リテラル文字列値を含む配列を返します。この配列は console.log によって出力され、観察した出力が得られます。

トランスパイルとテンプレート リテラル

古いバージョンのテンプレート リテラルなどの最新の JavaScript 機能を使用する場合コードをこれらのブラウザでサポートされている ES5 に変換するには、ブラウザ、Babel、または同様のトランスパイラが使用されます。この例のトランスパイルされたコードは次のようになります。

console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));

このトランスパイルされたコードは、リテラル文字列「1」を含む配列を作成し、それを引数として console.log に渡します。

したがって、バッククォート表記 1 は、タグ付きテンプレート関数として console.log を呼び出し、配列を返し、出力します。返された配列の生のプロパティには、リテラル文字列値が含まれます。

以上がJavaScript で `console.log\\`1`` が配列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。