[解決済み] 関数を呼び出すバックチック
2022-08-18 23:19:45
質問
うまく説明できないのですが
console.log`1`
グーグルクロームでは、次のような出力が得られます。
console.log`1`
VM12380:2 ["1", raw: Array[1]]
なぜバックティックはlog関数を呼び出しているのか、そしてなぜインデックスを
raw: Array[1]
?
CatgocatによってJSルームで持ち上がった質問ですが、以下のような答え以外、意味を成しませんでした。 文字列をテンプレート化する のようなもので、なぜこのようなことが起こっているのかよくわかりませんでした。
どのように解決するのですか?
ES-6ではTagged Templateと呼ばれています。 ここで , funny 私はまさにチャットの星付きセクションでリンクを見つけました。
しかし、コードの関連する部分は以下のとおりです(基本的にフィルタリングされたソートを作成することができます)。
function tag(strings, ...values) {
assert(strings[0] === 'a');
assert(strings[1] === 'b');
assert(values[0] === 42);
return 'whatever';
}
tag `a${ 42 }b` // "whatever"
基本的には、console.log 関数で "1" をタグ付けしているに過ぎないのです。タグ付け関数は、テンプレート文字列の解析された値を受け取り、その値に基づいてさらにタスクを実行することができます。
Babelは上記のコードを
var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
上の例でわかるように、babelでトランスパイルされた後、タグ付け関数(console.log)には、次のes6->5トランスパイルコードの戻り値が渡されています。
_taggedTemplateLiteralLoose( ["1"], ["1"] );
この関数の戻り値はconsole.logに渡され、その配列を表示します。
関連
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] Array.forEachでbreakを呼び出すようなショートサーキット
-
[解決済み] 関数が実行されるまでの時間を測定する方法
-
[解決済み] オブジェクトのためのマップ関数(配列の代わりに)
-
[解決済み] ECMAScript 6 オブジェクトを返す矢印関数
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】関数の前のエクスクラメーションマークは何をするのですか?
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] Node.jsのES6クラスをrequireで作る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?