Skip to content
本页目录

ES6 字符串的扩展

模板字符串

ES6 引入了模板字符串(Template Strings),也被称为模板字面量,是一种方便拼接字符串的新语法。模板字符串使用反引号(`)来包裹字符串,并允许在字符串中插入变量、表达式和多行文本。

字符串插值

使用${}来在模板字符串中插入变量或表达式,其中${}中的内容会被解析并替换为实际的值。

javascript
const name = 'John'
const age = 30
const message = `Hello, my name is ${name} and I'm ${age} years old.`

console.log(message)
// 输出:Hello, my name is John and I'm 30 years old.

多行字符串

使用模板字符串可以很方便地创建多行文本,不需要使用\n来手动添加换行符。

javascript
const multiLineText = `
  This is a multi-line text.
  It spans across multiple lines
  and maintains the line breaks.
`

console.log(multiLineText)
/* 输出:
  This is a multi-line text.
  It spans across multiple lines
  and maintains the line breaks.
*/

嵌套模板字符串

模板字符串可以嵌套在其他模板字符串中,使得字符串拼接更加灵活。

javascript
const name = 'Alice'
const greeting = `Hello, ${`my name is ${name}`}.`

console.log(greeting)
// 输出:Hello, my name is Alice.

带标签的模板字符串

可以在模板字符串前添加一个标签函数,这个标签函数将模板字符串的各个部分解析成多个参数,使得我们可以对字符串进行自定义处理。

javascript
function tagFunc(strings, ...values) {
  console.log(strings) // 包含模板字符串中的文本部分
  console.log(values) // 包含模板字符串中插入的变量部分
}

const name = 'Bob'
const age = 25

tagFunc`Hello, my name is ${name} and I'm ${age} years old.`
/* 输出:
  [ 'Hello, my name is ', " and I'm ", ' years old.' ]
  [ 'Bob', 25 ]
*/

TIP

模板字符串的引入简化了字符串拼接和多行文本的创建,使得代码更加清晰易读。

在现代 JavaScript 开发中,模板字符串广泛用于生成 HTML 标记、日志信息、网络请求等多种场景。

lemon's personal blog.