在ES6 中推遲模板文字執行
在ES6 中,模板文字提供了一種將動態值嵌入到字串中的強大方法。但是,當在範本文字中使用字串插值時,會在自訂字串操作方法處理範本文字之前評估這些值。在推遲模板文字的執行時,這可能會導致不期望的結果。
要解決此問題,可以考慮多種方法:
1.利用模板字串
避免在模板文字中使用字串插值,而是按預期選擇模板字串。例如:
console.log(`Hello, ${"world"}. This is a ${"test"}`);
2。使用標記範本文字
在評估範本文字替換後,利用標記範本文字來執行程式碼。然而,值得注意的是,替換本身仍然會立即評估:
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。將純字串文字與自訂字串操作結合使用
建立自訂字串操作函數,以便在動態檢索值後在程式碼中格式化字串:
以上是如何在 ES6 中延後模板文字執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!