首頁  >  文章  >  web前端  >  如何延後 ES6 範本文字評估?

如何延後 ES6 範本文字評估?

Patricia Arquette
Patricia Arquette原創
2024-11-09 00:30:02772瀏覽

How to Defer ES6 Template Literal Evaluation?

延遲 ES6 範本文字的評估

在 ES6 中,範本文字允許使用動態值進行字串插值。然而,有時我們可能需要延遲模板文字的評估,直到稍後合併動態元素。

問題:我們如何寫程式碼來延遲ES6 範本的評估

答案:有幾種方法可以實現這一點:

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

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