首页 > web前端 > js教程 > 正文

如何在 ES6 中推迟模板文字执行?

Linda Hamilton
发布: 2024-11-09 13:51:03
原创
567 人浏览过

How to Defer Template Literal Execution in ES6?

在 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中文网其他相关文章!

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