ホームページ >ウェブフロントエンド >jsチュートリアル >ES6 でテンプレート リテラルの実行を延期するにはどうすればよいですか?

ES6 でテンプレート リテラルの実行を延期するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-09 13:51:03620ブラウズ

How to Defer Template Literal Execution in ES6?

ES6 でのテンプレート リテラルの実行の遅延

ES6 では、テンプレート リテラルは文字列に動的な値を埋め込む強力な方法を提供します。ただし、テンプレート リテラル内で文字列補間を使用する場合、値はテンプレート リテラルがカスタム文字列操作メソッドによって処理される前に評価されます。これにより、テンプレート リテラルの実行を延期すると、望ましくない結果が生じる可能性があります。

これに対処するには、いくつかのアプローチを検討できます。

1.テンプレート文字列を利用する

テンプレート リテラル内で文字列補間の使用を避け、代わりに意図したとおりにテンプレート文字列を選択します。例:

console.log(`Hello, ${"world"}. This is a ${"test"}`);

2.タグ付きテンプレート リテラルを使用する

タグ付きテンプレート リテラルを利用して、テンプレート リテラルの置換が評価された後にコードを実行します。ただし、置換自体は引き続きすぐに評価されることに注意することが重要です:

function formatter(literals, ...substitutions) {
  return {
    format: function() {
      // Implementation for value substitution and template literal concatenation
    }
  };
}
console.log(formatter`Hello, <pre class="brush:php;toolbar:false">String.prototype.format = function() {
  var args = arguments;
  return this.replace(/$\{p(\d)\}/g, function(match, id) {
    return args[id];
  });
};
console.log("Hello, ${p0}. This is a ${p1}".format("world", "test"));
. This is a `.format("world", "test"));

3.カスタム文字列操作でプレーン文字列リテラルを使用する

値が動的に取得された後、コードの後半で文字列をフォーマットするカスタム文字列操作関数を作成します。

以上がES6 でテンプレート リテラルの実行を延期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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