JavaScript 模板字面量是 ES6 引入的用反引号定义的字符串字面量,支持插值、多行及原始字符串,类型仍为 string,非 String 方法。

JavaScript 中的字符串模板(也叫模板字面量)不是 String 类型的“子方法”,而是 ES6 引入的一种全新字符串字面量语法,用反引号 ` 定义,直接替代传统单/双引号字符串。它让字符串拼接、动态插值和多行文本变得自然又可靠。
用反引号定义,不是 String 的方法
字符串模板是语法层面的特性,不是调用 String 构造函数或其原型方法(如 String.prototype.replace)实现的。它本质是字面量——就像 42 是数字字面量、true 是布尔字面量一样,`hello` 就是模板字面量。
- 写法必须用反引号(
`),不能用单引号或双引号替代 - 它生成的仍是原始字符串类型(
typeof `abc` === 'string'),不是对象 - 不需要
new String()或String.raw来启用——String.raw只是它的配套静态方法,用于禁用转义
变量和表达式用 ${} 插入
在反引号内,任何合法 JavaScript 表达式都可以放在 ${} 中执行,并把结果转为字符串拼入。
- 插入变量:
const name = '小李'; console.log(`你好,${name}`); - 运算表达式:
const a = 3; const b = 7; console.log(`和是${a + b}`); - 三元判断:
console.log(`状态:${score >= 60 ? '通过' : '未通过'}`); - 函数调用:
console.log(`时间:${new Date().toLocaleTimeString()}`); - 访问对象属性:
const user = {id: 101, nick: '阿七'}; console.log(`用户${user.nick}(ID:${user.id})`);
天然支持多行,保留空白和缩进
不用 \n 或加号换行,直接回车即可。缩进、空格、换行符都会如实保留在最终字符串中。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
立即学习“Java免费学习笔记(深入)”;
- 适合生成 HTML 片段:
const html = `<div class="card"> <h3>${title}</h3> <p>${content}</p> </div>`; - 注意缩进影响输出:如果代码缩进 4 空格,生成的字符串开头也会有 4 个空格
- 若需去除首尾换行/缩进,可用
String.trim()后处理,例如:`\n hello\n`.trim()→"hello"
在特殊环境里要防冲突
某些服务端模板引擎(如 JSP、Thymeleaf)也用 ${...} 语法,会与 JS 模板字符串冲突,导致运行前就被服务器误解析。
- JSP 中必须对 JS 的
${转义为\${,例如:`translate(\${x}, \${y})` - 更稳妥的做法是把含模板字符串的 JS 拆到外部 .js 文件,避开服务端模板解析
- Vue / React 等现代框架默认不解析服务端
${},一般无此问题

















