Heim >Web-Frontend >js-Tutorial >Wie verschiebt man die Auswertung von ES6-Vorlagenliteralen?

Wie verschiebt man die Auswertung von ES6-Vorlagenliteralen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 00:30:02800Durchsuche

How to Defer ES6 Template Literal Evaluation?

Auswertung für ES6-Vorlagenliterale aufschieben

In ES6 ermöglichen Vorlagenliterale die String-Interpolation mit dynamischen Werten. Manchmal müssen wir jedoch möglicherweise die Auswertung des Vorlagenliterals auf einen späteren Zeitpunkt verschieben, um dynamische Elemente einzubinden.

Frage: Wie können wir Code schreiben, um die Auswertung einer ES6-Vorlage zu verschieben literal, bis wir die für die Interpolation verwendeten Elemente dynamisch erstellt haben?

Antwort: Es gibt mehrere Ansätze, um dies zu erreichen:

  1. Verwenden einfacher Zeichenfolgen:

    Verwenden Sie einfache Zeichenfolgenliterale anstelle von Vorlagenzeichenfolgen, um eine sofortige Auswertung zu vermeiden. Die Interpolationsplatzhalterwerte können mit einer benutzerdefinierten Prototypmethode wie folgt formatiert werden:

    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"));
  2. Verwendung getaggter Vorlagenliterale:

    Tagged-Vorlagenliterale Bieten Sie eine alternative Methode an. Es ist jedoch wichtig zu beachten, dass Ersetzungen weiterhin ausgewertet werden, ohne dass eine Interpolation von Bezeichnern wie „p0“ möglich ist.

    function formatter(literals, ...substitutions) {
        return {
            format: function() {
                var out = [];
                for(var i=0, k=0; i < literals.length; i++) {
                    out[k++] = literals[i];
                    out[k++] = arguments[substitutions[i]];
                }
                out[k] = literals[i];
                return out.join("");
            }
        };
    }
    console.log(formatter`Hello, <pre class="brush:php;toolbar:false">console.log(`Hello, ${"world"}. This is a ${"test"}`);
    . This is a `.format("world", "test"));
  3. Verzögerung vermeiden:

    Erwägen Sie die bestimmungsgemäße Verwendung von Vorlagenzeichenfolgen ohne Formatfunktion oder Verzögerung. Vorlagenzeichenfolgen bieten eine prägnante und effiziente Möglichkeit, dynamische Werte ohne zusätzliche Komplexität zu interpolieren.

Das obige ist der detaillierte Inhalt vonWie verschiebt man die Auswertung von ES6-Vorlagenliteralen?. 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