JavaScript模板字符串用反引号定义,支持变量插值、多行书写、任意表达式嵌入及标签函数,比传统字符串拼接更安全、易读、灵活。

JavaScript模板字符串是用反引号(`)包裹的字符串,支持嵌入表达式、多行书写和字符串插值。它不是“更好”的替代品,而是在特定场景下更自然、更安全、更易读的字符串处理方式。
支持变量插值,不用拼接
普通字符串要用加号(+)或 concat() 拼接变量,容易出错且难维护:
❌ 普通写法:const name = '小明'; const age = 25;const msg = '你好,' + name + ',你今年' + age + '岁了。';
✅ 模板字符串:const msg = `你好,${name},你今年${age}岁了。`
变量直接写在 ${} 里,语义清晰,不易漏空格或引号。
天然支持多行文本
普通字符串换行必须用 \n 和加号续行,可读性差:
立即学习“Java免费学习笔记(深入)”;
❌ 普通写法:const html = '';
✅ 模板字符串: 标题 内容const html = `
缩进和换行原样保留,适合写 HTML、SQL 或配置文本。
可嵌入任意表达式,不只是变量
模板字符串中 ${} 内可以是函数调用、运算、三元判断等:
`${a + b}``${items.length > 0 ? '有数据' : '空列表'}``当前时间:${new Date().toLocaleTimeString()}`
普通字符串做不到这点,必须先计算再拼接,逻辑分散。
支持标签函数,实现高级功能
模板字符串可配合自定义标签函数,做转义、国际化、SQL 防注入等:
function sanitize(strs, ...vals) { return strs.reduce((acc, s, i) => acc + s + (vals[i] ?? '').replace(/, '}const user = '';const safeHtml = sanitize`
这种能力普通字符串完全不具备。











