信息发布→ 登录 注册 退出

javascript的模板字符串是什么_它如何简化字符串操作?

发布时间:2025-12-25

点击量:
JavaScript模板字符串是ES6引入的用反引号包裹的新语法,支持变量插值(${})、多行书写、免转义单双引号,并可配合标签函数实现转义、国际化等高级处理。

JavaScript 的模板字符串(Template Literals)是 ES6 引入的一种新语法,用反引号 ` 包裹,支持嵌入表达式、多行书写和字符串插值。它让字符串操作更直观、灵活,大幅减少拼接和转义的麻烦。

支持变量插值,告别加号拼接

传统字符串拼接容易出错,尤其混用变量和文本时:

// 旧写法
const name = '小明'; const age = 25;
const msg = '你好,' + name + ',你今年' + age + '岁了。';

模板字符串直接在 ${} 中写表达式,可读性高、不易漏空格或引号:

// 新写法
const msg = `你好,${name},你今年${age}岁了。`;

  • 变量、函数调用、运算表达式都可放在 ${} 里,比如 ${age > 18 ? '成年人' : '未成年人'}
  • 不需要转义单/双引号,内部可自由使用 "'

天然支持多行字符串

以前换行得靠 + 拼接或 \n,既难看又易错:

// 旧写法
const html = '\n

标题

\n

内容

\n';

模板字符串保留原始换行和缩进,HTML 或 SQL 片段写起来非常自然:

// 新写法
const html = `

标题


内容


`;

  • 换行符会真实出现在字符串中,适合生成结构化文本
  • 若不想要多余缩进,可用 .trim() 或工具函数清理空白

可与标签函数配合,实现高级处理

模板字符串前面加一个函数名(如 html`...`),就变成“带标签的模板字符串”。该函数接收字符串片段和插值结果作为参数,能做转义、国际化、SQL 防注入等:

// 简单 HTML 转义示例
function escape(strings, ...values) {
return strings.reduce((acc, str, i) => {
const val = values[i] ? String(values[i]).replace(/[&"']/g, c => ({'&':'&','':'>','"':'"',"'":'''}[c])) : '';
return acc + str + val;
}, '');
}
const user = '';
const safe = escape`${user}`; // zuojiankuohaophpcnscriptyoujiankuohaophpcnalert(1)zuojiankuohaophpcn/scriptyoujiankuohaophpcn

  • 第一个参数是字符串数组(按插值位置分割)
  • 后续参数对应每个 ${} 的计算结果
  • 常见标签函数有 String.rawstyled-componentssql 等库提供的安全包装器

基本上就这些。模板字符串不是黑科技,但把日常字符串操作从“凑合能用”变成了“顺手好写”,尤其对动态内容和结构化文本帮助明显。

标签:# javascript  # es6  # java  # html  # 工具  # 字符串数组  # red  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!