首页 > web前端 > js教程 > 如何推迟 ES6 模板文字评估?

如何推迟 ES6 模板文字评估?

Patricia Arquette
发布: 2024-11-09 00:30:02
原创
808 人浏览过

How to Defer ES6 Template Literal Evaluation?

推迟对 ES6 模板文字的评估

在 ES6 中,模板文字允许使用动态值进行字符串插值。然而,有时我们可能需要推迟模板文字的评估,直到稍后合并动态元素。

问题:我们如何编写代码来推迟 ES6 模板的评估

答案: 有几种方法可以实现this:

  1. 使用纯字符串:

    使用纯字符串而不是模板字符串以避免立即计算。插值占位符值可以使用自定义原型方法进行格式化,如下所示:

    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. 使用标记模板文字:

    标记模板文字提供替代方法。但是,需要注意的是,仍然会在不允许插入“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"}`);
    登录后复制
    . This is a `.format("world", "test"));
  3. 避免延迟:

    考虑按预期使用模板字符串,而不使用任何格式函数或延迟。模板字符串提供了一种简洁有效的方法来插入动态值,而无需额外的复杂性。

以上是如何推迟 ES6 模板文字评估?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板