首頁  >  文章  >  web前端  >  如何在 ES6 中延後模板文字執行?

如何在 ES6 中延後模板文字執行?

Linda Hamilton
Linda Hamilton原創
2024-11-09 13:51:03565瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn