JavaScript模板字符串用反引号包裹,支持${}插值、多行书写及标签函数,自ES6引入,提升可读性与安全性,但需注意全角符号误输和过度嵌套问题。

JavaScript模板字符串是用反引号(`)包裹的字符串,支持嵌入表达式、多行书写和字符串插值。它从ES6(ECMAScript 2015)开始引入,替代了传统单/双引号字符串在复杂场景下的拼接痛点。
支持变量插值,写法更直观
模板字符串允许直接用${expression}嵌入变量或表达式,无需字符串拼接符+。可读性高,出错率低。
- 传统写法:
"Hello " + name + ", you are " + age + " years old." - 模板字符串:
`Hello ${name}, you are ${age} years old.` - 还能放任意表达式:
`The result is ${a * b + c}`、`${user?.name || 'Anonymous'}`
天然支持多行字符串
反引号内的换行会被保留,不需要\n或加号续行,适合HTML片段、SQL语句或长提示文案。
- 例如:`
` - 传统方式需手动加
\n和+,易错且难维护
可与标签函数配合实现高级功能
模板字符串可作为参数传给函数(称“标签模板”),用于自动转义、国际化、SQL防注入等场景。
- 简单示例:
html`中${user.name}`html函数可对插值内容做HTML转义 - 前端框架如Lit、styled-components都基于此机制实现模板安全渲染
注意点:不是万能,需合理使用
模板字符串本质仍是字符串,不改变JS类型系统。过度嵌套表达式或滥用多行会影响可读性;纯静态短字符串仍可用单引号提升性能(V8等引擎对字面量有优化)。
不复杂但容易忽略:反引号是英文符号,中文输入法下容易误输成全角字符导致语法错误。











