ES6 模板字符串

发布于 2022-02-01 23:08:21 字数 1842 浏览 871 评论 0

在 ES6 引入模板字符串之前,如果大家需要在代码中创建一个包含变量的字符串,那么代码将非常难读,并且也非常容易出错。下面就是一个简单的例子,在例子中我们将输入的 3 个参数拼接在一起,然后返回给调用方。

//在模板字符串出现前的写法,写法冗长而且难于理解
function returnSomthing(param1, param2, param3){
    return "something return based on input("
           + "param1:" + param1.toString() + "---"
           + "param2:" + param2.toString() + "---"
           + "param3:" + param3.toString();
}

//使用模板字符串的写法,
function returnSomthingNew(param1, param2, param3){
    return `something return based on input(
              param1:${param1}---param2:${param2}---param3:${param3}`;
}

通过上面的代码,你可以看出在使用模板字符串之后,代码变得非常简洁,而且也容易阅读。下面是在使用模板字符串时候的一些注意点

  • 模板字符串是使用 ` 引用起来的,如果在最终生成的字符串中包含`字符,那么需要使用 \ 字符进行转义
  • 模板字符串中对于变量的引用是通过 ${} 来进行的
  • 使用模板字符串的时候,${} 中可以放入任意合法的JavaScript表达式。JavaScript 对包含在 ${} 中的内容实际上是通过 eval 表达式来进行的

标签模板

模板字符串可以跟在一个函数名之后,该函数将被调用来处理跟在后面的模板字符串,这个功能被称为标签模板。被调用的函数将接收到下面的参数列表(literals,...values)。其中 literals 是一个数组,内容是模板字符串中不需要进行变量替换的部分,而 values 就是每个替换变量经过 eval 之后的值,下面是一个具体的例子。

var total = 30;
var msg = transform`The total number is ${total}`;
total = 20;
var msg1 = transform`The total number is ${total}`;
//in our sample
//literals = ["The total number is ", ""]
//values = [30]
function transform(literals,...values){
    var output = "";
    for (var index = 0; index < values.length; index++){
        if (parseInt(values[index]) >= 30){
            output += literals[index] + "high value";
        }else{
            output += literals[index] + "low value";
        }
    }
    output += literals[index];
    return output;
}
console.log(msg); //output The total number is high value
console.log(msg1);//output The total number is low value

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84965 人气
更多

推荐作者

李珊平

文章 0 评论 0

Quxin

文章 0 评论 0

范无咎

文章 0 评论 0

github_ZOJ2N8YxBm

文章 0 评论 0

若言

文章 0 评论 0

南…巷孤猫

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文