📅  最后修改于: 2023-12-03 15:24:09.900000             🧑  作者: Mango
在 ECMAScript 6 中,我们可以使用模板字符串字面量来创建包含换行符、表达式、变量等的长字符串。
模板字符串字面量使用反引号 (
) 包裹字符串内容,并且可以在字符串中插入 ${expression}
来引入任意 JavaScript 表达式的结果。
// 插入变量
const name = 'John Doe';
console.log(`Hello, ${name}!`); // 输出 "Hello, John Doe!"
// 插入表达式
const a = 1, b = 2;
console.log(`a + b = ${a + b}`); // 输出 "a + b = 3"
在模板字符串字面量中,我们可以直接使用换行符来创建多行字符串。这样可以避免使用 \n
转义符。
const poem = `一片孤叶轻,
不自觉,长叹声,
常恨人生路难行。`;
console.log(poem);
/*
输出:
一片孤叶轻,
不自觉,长叹声,
常恨人生路难行。
*/
在模板字符串字面量中,我们可以嵌套使用模板字符串字面量。在内层模板字符串字面量中,可以使用单引号或双引号包裹字符串内容。
const a = 'foo';
const b = 'bar';
console.log(`a is ${a}, b is '${b}'`);
// 输出 "a is foo, b is 'bar'"
在模板字符串字面量中,我们可以在模板字符串字面量前加上一个函数名,这个函数被称为标签函数。标签函数可以用来处理模板字符串字面量的内容,进行替换、过滤、加工等操作。
function format(template, ...values) {
return template.reduce((result, part, i) => {
return result + part + (values[i] || '');
}, '');
}
const name = 'John Doe';
const age = 25;
const message = format`
Name: ${name}
Age: ${age + 1}
`;
console.log(message);
/*
输出:
Name: John Doe
Age: 26
*/
在上面的例子中,format
函数使用了标签模板的功能,将模板字符串字面量中的变量替换为相应的值,并且可以在其中进行一些额外的加工操作。