在 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"));
3。将纯字符串文字与自定义字符串操作结合使用
创建自定义字符串操作函数,以便在动态检索值后在代码中格式化字符串:
以上是如何在 ES6 中推迟模板文字执行?的详细内容。更多信息请关注PHP中文网其他相关文章!