返回

ES6 语法系列:四、模板字面量

前端

ES6语法四之模板字面量

ES6的到来意味着JavaScript拥有了模板字面量(template literal),用于方便地表示多行的字符串。凭借这个特性,你可以使用多行字符串并自由运用一些替换表达式。与反引号(backtick)字符串兼容的浏览器包括Chrome、Safari、Firefox和IE9+。

模板字面量可用于所有需要字符串的地方,而无需特殊处理。ES6引入模板字面量,事实上就是简化拼接操作。例如,假设你要将"abc"123拼接在一起,你可以使用反引号字符和插值表达式:

const text = `abc${123}`;
console.log(text);  // 输出 "abc123"

也可以使用模板字面量在多行字符串中使用插值表达式:

const text = `abc
${123}
def`;
console.log(text);  // 输出 "abc
// 123
// def"

如果想要使用反引号本身,只需使用反斜杠(\)进行转义即可:

const text = `\`abc\``;
console.log(text);  // 输出 "\`abc\`"

在模板字面量中,可以使用插值表达式替换字符串的一部分。插值表达式是一个表达式,放在{ }括号中,可以是任何有效的JavaScript表达式。例如:

const name = "张三";
const age = 18;

const text = `我是 ${name},今年 ${age} 岁了。`;
console.log(text);  // 输出 "我是 张三,今年 18 岁了。"

也可以在插值表达式中使用函数和运算符。例如:

const name = "张三";
const age = 18;

const text = `我是 ${name},今年 ${age * 2} 岁了。`;
console.log(text);  // 输出 "我是 张三,今年 36 岁了。"

模板字面量功能非常强大,它可以让你更轻松地处理字符串,可以用于构建字符串模板和动态文本内容。有了模板字面量,你就可以告别那些复杂且容易出错的字符串拼接操作,让你的代码更加简洁和易读。

再举一个模板字面量的使用示例。假设你要创建一个HTML字符串,其中包含一个变量name

const name = "张三";

const html = `<div>你好,${name}!</div>`;
console.log(html);
// 输出 "<div>你好,张三!</div>"

模板字面量是一种非常强大的工具,可以让你编写出更简洁、更易读的代码。

当然,你也可以使用模板字面量来创建更复杂的字符串。例如,你可以使用模板字面量来创建包含换行符的字符串:

const text = `第一行
第二行
第三行`;

console.log(text);
// 输出 "第一行
// 第二行
// 第三行"

或者,你也可以使用模板字面量来创建包含制表符的字符串:

const text = `第一列\t第二列\t第三列`;

console.log(text);
// 输出 "第一列    第二列    第三列"

使用反引号创建模板字面量时,不需要考虑字符串是否会被换行,因为反引号会自动处理这些换行。这使得模板字面量非常适合用于创建多行字符串。

同时,还可以使用模板字面量来创建包含表达式结果的字符串。例如,假设你要创建一个字符串,其中包含变量name和变量age的值:

const name = "张三";
const age = 18;

const text = `我是 ${name},今年 ${age} 岁了。`;

console.log(text);
// 输出 "我是 张三,今年 18 岁了。"

在模板字面量中,可以使用任何有效的JavaScript表达式。这使得模板字面量非常灵活,可以用来创建各种各样的字符串。

模板字面量是一个非常强大的工具,它可以让你编写出更简洁、更易读的代码。如果你还没有开始使用模板字面量,那么我强烈建议你开始使用它。

模板字面量之所以如此强大,是因为它允许你以一种更自然、更直观的方式编写字符串。在编写字符串时,你不再需要考虑字符串的长度或格式,你只需要关注字符串的内容。模板字面量会自动处理所有这些细节。