Heim  >  Artikel  >  Web-Frontend  >  Wie verzögere ich die Ausführung von Vorlagenliteralen in ES6?

Wie verzögere ich die Ausführung von Vorlagenliteralen in ES6?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 13:51:03567Durchsuche

How to Defer Template Literal Execution in ES6?

Verzögern der Ausführung von Vorlagenliteralen in ES6

In ES6 bieten Vorlagenliterale eine leistungsstarke Möglichkeit, dynamische Werte in Zeichenfolgen einzubetten. Wenn jedoch die Zeichenfolgeninterpolation innerhalb von Vorlagenliteralen verwendet wird, werden die Werte ausgewertet, bevor das Vorlagenliteral durch benutzerdefinierte Methoden zur Zeichenfolgenbearbeitung verarbeitet wird. Dies kann zu unerwünschten Ergebnissen führen, wenn die Ausführung des Vorlagenliterals verzögert wird.

Um dieses Problem zu beheben, gibt es mehrere Ansätze, die in Betracht gezogen werden können:

1. Verwenden Sie Vorlagenzeichenfolgen

Vermeiden Sie die Verwendung von Zeichenfolgeninterpolation innerhalb von Vorlagenliteralen und entscheiden Sie sich stattdessen wie beabsichtigt für Vorlagenzeichenfolgen. Zum Beispiel:

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

2. Verwenden Sie getaggte Vorlagenliterale

Nutzen Sie getaggte Vorlagenliterale, um Code auszuführen, nachdem die Ersetzungen der Vorlagenliterale ausgewertet wurden. Es ist jedoch wichtig zu beachten, dass die Auswechslungen selbst immer noch sofort bewertet werden:

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. Verwenden Sie einfache String-Literale mit benutzerdefinierter String-Manipulation

Erstellen Sie eine benutzerdefinierte String-Manipulationsfunktion, um die Zeichenfolge später im Code zu formatieren, nachdem Werte dynamisch abgerufen wurden:

Das obige ist der detaillierte Inhalt vonWie verzögere ich die Ausführung von Vorlagenliteralen in ES6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn