模板字面量是ES6引入的用反引号包裹的字符串语法,支持变量插值(${})、多行文本、任意表达式嵌入及标签函数,显著提升可读性与灵活性。

模板字面量(Template Literal)是ES6引入的一种字符串定义方式,用反引号 ` 包裹,支持嵌入表达式、多行文本和字符串插值。
支持变量插值,写法更直观
传统字符串拼接要用加号连接,容易出错且难读:
"Hello " + name + ", you are " + age + " years old."
模板字面量直接写成:
立即学习“Java免费学习笔记(深入)”;
`Hello ${name}, you are ${age} years old.`
变量或表达式放在 ${...} 中,JS自动求值并转为字符串,逻辑清晰、不易漏空格或引号。
天然支持多行字符串
普通字符串换行必须用 \n 加 + 拼接,或者用反斜杠续行(ES5不推荐):
"Line 1\n" + "Line 2\n" + "Line 3"
模板字面量直接回车换行即可,缩进和换行符都会保留:
`Line 1
Line 2
Line 3`
适合写HTML片段、SQL查询或多段提示文案。
可嵌入任意表达式,不止是变量
${} 里可以放函数调用、三元运算、数组方法等:
-
`Price: $${(price * 0.9).toFixed(2)}`—— 直接计算并格式化 -
`Status: ${isActive ? 'Online' : 'Offline'}`—— 内联条件判断 -
`Items: ${items.map(i => i.name).join(', ')}`—— 处理数组
避免了先拼中间变量再拼字符串的冗余步骤。
支持标签函数,实现高级字符串处理
在反引号前加一个函数名,就能让该函数接收模板解析后的参数:
html`
这个 html 函数会收到字符串数组和插值结果,可用于自动转义、语法高亮、国际化等。这是普通字符串完全做不到的扩展能力。
基本上就这些 —— 不复杂但容易忽略,日常写代码时换用模板字面量,可读性、维护性和灵活性都明显提升。










