JavaScript 模板字符串高级用法:插值、标签函数与多行处理

小石头
小石头
发布时间:2026-10-15| 5人浏览过
原创

JavaScript 模板字符串是 ES6 引入的重要特性,它使用反引号定义,支持变量插值、多行文本和标签函数。相比传统的字符串拼接,它能显著提升代码可读性并简化复杂内容的生成过程。

什么是模板字符串

模板字符串(Template Literals)允许在字符串中嵌入表达式,同时原生支持多行字符串显示和字符串插值功能。其最显著的特征是使用反引号 ` 作为定界符,而非传统的单引号或双引号。

let str = `这是一个模板字符串`;
console.log(str); // 输出: 这是一个模板字符串

基础用法:格式化与插值

第 1 步:保持原始格式

普通字符串在定义时会忽略换行和空格,而模板字符串会原样保留代码中的缩进、换行和空格。这使得定义多段文本时更加直观。

const formatText = `
第一      行
第二行
	第三行
`;
console.log(formatText);

第 2 步:进行字符串插值

字符串插值是模板字符串的核心功能,允许将 JS 表达式的结果直接插入字符串中。语法为 ${expression},其中可以放入变量、计算式甚至函数调用。

let name = 'XiXiHaHa', age = 18;
let sayHello = `Hello! My name is ${name}.
My age is ${age}.`;
console.log(sayHello);

高级用法:标签函数

标签函数(Tagged Templates)允许开发者自定义模板字符串的处理逻辑。当调用 tag(stringArray, ...values) 时:

  • 第一个参数:是一个包含所有静态字符串片段的数组(由 ${} 分割得到)。
  • 后续参数:依次对应每个 ${} 中计算出的表达式值。

理解标签函数的最佳方式是查看一个简单的求和示例:

let a = 1, b = 2;
function addSum(strings, aVal, bVal, abSum) {
    console.log('静态字符串:', strings);
    console.log('a 的值:', aVal);
    console.log('b 的值:', bVal);
    console.log('表达式结果:', abSum);
}
addSum`${a} + ${b} = ${a + b}`;

第 1 步:使用剩余参数处理动态数量

当插值数量不确定时,可以使用剩余参数 ...val 来收集所有变量值,从而构建更通用的解析器:

function addSum(strings, ...val) {
    return strings[0] + 
    val.map((e, i) => `${e}${strings[i + 1]}`).join('');
}

let result = addSum`${1} + ${2} = ${1 + 2}`;
console.log(result); // 输出: 1 + 2 = 3

实战应用:HTML 与 URL 拼接

在实际项目中(如 Vue.js),模板字符串常被用于拼接图片 URL 或生成 DOM 结构。

1. HTML 属性拼接

利用预定义的地址前缀,动态拼接资源路径:

<img :src="$oss.basicAddress + '/' + businessorgData.idCardUrl1" />

2. JS 数据对象初始化

在组件的 data 或配置项中直接内联完整路径:

const fileItem = {
  url: `${this.$oss.basicAddress}/FrIkEw2UlgTxcmNKjt7FxywVT-W4`
};

3. 批量生成 DOM 节点

使用 .html() 方法一次性渲染复杂的嵌套 HTML,此时务必注意首尾缩进问题。若需去除多行字符串自带的多余空白,可结合 .trim() 使用:

$('#list').html(`
  <div id=sm_shop_tp> 
    <p>商家名字:<span>XXX</span></p> 
  </div>
`.trim());

总结

以上就是对 JavaScript 模板字符串的详细使用方法解析,涵盖了从基础的插值到高级标签函数的应用场景,更多关于 JavaScript 模板字符串的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。