Maison > interface Web > js tutoriel > Comment différer l'évaluation littérale du modèle ES6 ?

Comment différer l'évaluation littérale du modèle ES6 ?

Patricia Arquette
Libérer: 2024-11-09 00:30:02
original
824 Les gens l'ont consulté

How to Defer ES6 Template Literal Evaluation?

Évaluation différée pour les littéraux de modèles ES6

Dans ES6, les littéraux de modèles permettent l'interpolation de chaînes avec des valeurs dynamiques. Cependant, nous pouvons parfois devoir différer l'évaluation du modèle littéral à plus tard pour incorporer des éléments dynamiques.

Question : Comment pouvons-nous écrire du code pour différer l'évaluation d'un modèle ES6 littéral jusqu'à ce que nous ayons créé dynamiquement les éléments utilisés pour l'interpolation ?

Réponse : Il existe plusieurs approches pour y parvenir ceci :

  1. Utilisation de chaînes simples :

    Utilisez des littéraux de chaîne simples au lieu de chaînes de modèles pour éviter une évaluation immédiate. Les valeurs d'espace réservé d'interpolation peuvent être formatées à l'aide d'une méthode de prototype personnalisée comme celle-ci :

    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"));
    Copier après la connexion
  2. Utilisation de littéraux de modèle balisés :

    Littéraux de modèle balisés proposer une méthode alternative. Cependant, il est important de noter que les substitutions sont toujours évaluées sans permettre l'interpolation d'identifiants comme "p0".

    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"}`);
    Copier après la connexion
    . This is a `.format("world", "test"));
  3. Éviter le report :

    Pensez à utiliser les chaînes de modèles comme prévu, sans aucune fonction de formatage ni report. Les chaînes de modèles offrent un moyen concis et efficace d'interpoler des valeurs dynamiques sans complexité supplémentaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal