模板字符串

        模板字符串(Template Literals)是ES6(ES2015)引入的一种新型字符串表示方式,它使用反引号(`)而不是单引号或双引号来定义字符串,并提供了更强大的字符串处理能力。相比传统字符串,模板字符串支持多行文本、嵌入表达式以及更灵活的字符串拼接。

核心特性:
1.多行字符串

传统字符串需要手动添加换行符(\n)才能实现多行效果,而模板字符串直接保留换行格式

//传统
const multiLine = '第一行\n' +
                 '第二行\n' +
                 '第三行';
//模板字符串
const multiLine = `第一行
第二行
第三行`;
2. 变量插值(${expression})

通过 ${expression} 语法,可以直接在字符串中嵌入变量或表达式:

const name = '张三';
const age = 25;

// 传统方式
const greeting = '你好,' + name + ',你今年' + age + '岁了';

// 模板字符串方式
const greeting = `你好,${name},你今年${age}岁了`;
3.表达式计算

${} 内可以是任意有效的JavaScript表达式,包括运算、函数调用等:

const a = 5;
const b = 10;

console.log(`a + b = ${a + b}`); // 输出:a + b = 15
console.log(`a的平方是:${a * a}`); // 输出:a的平方是:25
4.标签模板函数

       模板字符串可以配合标签函数(Tagged Template)使用,实现对字符串的定制化处理。标签函数接收字符串部分和表达式部分,返回处理后的结果:

function highlight(strings, ...values) {
  let result = '';
  strings.forEach((str, i) => {
    result += str;
    if (values[i]) {
      result += `<strong>${values[i]}</strong>`;
    }
  });
  return result;
}

const name = '李四';
const age = 30;

const message = highlight`你好,${name},你今年${age}岁了`;
// 输出:你好,<strong>李四</strong>,你今年<strong>30</strong>岁了

//strings = ["你好, ",你今年" ," 岁了"]
//values = [name , age ]

上述代码中strings是一个数组,包含模板字符串中 所有静态文本部分(被 ${} 分隔的部分)

...values剩余参数语法(Rest Parameters),表示模板字符串中 所有 ${} 插值的变量部分,以数组形式收集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值