模板字面量用反引号包裹,支持${}嵌入变量和表达式,天然换行、语义清晰、结构直观,配合标签函数可实现转义、国际化等高级处理。

用 template literals(模板字面量)写字符串,核心是把拼接逻辑变成自然的语句表达,而不是靠加号或 concat 堆砌。
用反引号包裹,嵌入变量更直观
传统字符串拼接容易出错且难读,比如 "Hello " + name + ", you're " + age + " years old."。换成模板字面量后,变量直接写在 ${} 里,位置和语义一目了然:
- `Hello ${name}, you're ${age} years old.`
- 变量名紧贴上下文,一眼看出它代表什么
- 不用反复加空格或标点,标点直接写在反引号内
多行字符串无需换行符或加号
以前写 HTML 片段或长提示文本,得用 + 拼接或 \n 控制换行,可读性差。模板字面量天然支持换行:
- ``
${title}
${content}
- 缩进和换行会原样保留,结构清晰易维护
- 避免因忘记空格或换行符导致渲染异常
表达式计算直接内联,减少临时变量
不只是变量,任何 JavaScript 表达式都能放进 ${},让逻辑更紧凑:
- `Price: $${(price * (1 - discount)).toFixed(2)}`
- `Status: ${isActive ? 'Online' : 'Offline'}`
- 避免先算好再拼接,减少中间变量,代码更贴近业务意图
标签函数支持高级处理,比如转义或国际化
模板字面量可以配合自定义标签函数,实现字符串预处理:
-
safeHtml`${userInput}` 可自动转义 HTML
- t`Welcome back, ${userName}!` 可触发翻译流程
- 把格式化、安全、本地化等关注点从拼接逻辑中分离出来


















