当前位置: 首页 > news >正文

JavaScript 模板字符串

模板字符串(Template Literals)是 JavaScript ES6 引入的一项功能,它让字符串的处理变得更加灵活和直观。以下是对模板字符串的详细介绍,包括它的基本特性、用法以及一些高级用法。

一 基本特性

1. 多行字符串

模板字符串允许创建多行字符串,不需要使用换行符(\n)或连接符(+)。

const multiLineString = `This is a string
that spans multiple lines.
You can write as many lines as you want.`;
console.log(multiLineString);
// Output:
// This is a string
// that spans multiple lines.
// You can write as many lines as you want.

2. 插值表达式

模板字符串使用 ${} 来嵌入变量和表达式,可以是任何有效的 JavaScript 表达式。

const name = "John";
const age = 30;
const greeting = `Hello, my name is ${name} and I am ${age} years old.`;
console.log(greeting); // Output: Hello, my name is John and I am 30 years old.

3. 表达式嵌入

不仅可以插入变量,还可以插入更复杂的表达式,例如函数调用和数学运算。

const a = 5;
const b = 10;
const sum = `The sum of ${a} and ${b} is ${a + b}.`;
console.log(sum); // Output: The sum of 5 and 10 is 15.const user = {name: 'Alice',age: 25
};
const description = `User: ${user.name}, Age: ${user.age}, Uppercase Name: ${user.name.toUpperCase()}`;
console.log(description); // Output: User: Alice, Age: 25, Uppercase Name: ALICE

二 高级用法

1. 标签模板(Tagged Templates)

标签模板允许你对模板字符串应用自定义处理函数。函数可以接收模板字符串的字面量部分和插值的值作为参数,并返回一个处理后的字符串或其他值。

function highlight(strings, ...values) {return strings.reduce((accumulator, string, index) => {const value = values[index] ? `<b>${values[index]}</b>` : '';return `${accumulator}${string}${value}`;}, '');
}const name = 'world';
const highlightedMessage = highlight`Hello, ${name}!`;
console.log(highlightedMessage); // Output: Hello, <b>world</b>!

2. 嵌套模板字符串

你可以在模板字符串中嵌套其他模板字符串,这使得构建复杂的字符串变得更加灵活。

const firstName = "Jane";
const lastName = "Doe";
const fullName = `${firstName} ${lastName}`;
const message = `Hello, my name is ${fullName}.`;
console.log(message); // Output: Hello, my name is Jane Doe.

3. 动态创建模板字符串

模板字符串可以用来动态构造复杂的字符串和标签模板,特别是在处理动态内容时非常有用。

const user = { name: 'Bob', age: 28 };
const template = (name, age) => `Name: ${name}, Age: ${age}`;
const result = template(user.name, user.age);
console.log(result); // Output: Name: Bob, Age: 28

4 性能考虑

模板字符串在大多数场景下性能表现良好,但如果你在性能敏感的场合中使用大量的模板字符串,可能需要对其进行优化。标签模板在处理复杂模板和大量数据时,可能会带来额外的开销,因为它们涉及到函数调用和字符串拼接。

三 总结

模板字符串在 JavaScript 中提供了一种强大而灵活的方式来处理字符串。它们不仅支持多行字符串,还允许在字符串中插入变量和表达式,使得字符串的创建和处理更加直观和易于维护。标签模板提供了更高级的功能,可以自定义字符串的处理方式,是处理复杂文本格式化需求的有力工具。

相关文章:

JavaScript 模板字符串

模板字符串&#xff08;Template Literals&#xff09;是 JavaScript ES6 引入的一项功能&#xff0c;它让字符串的处理变得更加灵活和直观。以下是对模板字符串的详细介绍&#xff0c;包括它的基本特性、用法以及一些高级用法。 一 基本特性 1. 多行字符串 模板字符串允许创…...

模拟new关键字时产生的问题,求解答!

目的&#xff1a;编写函数myNew来模拟new关键字 首先&#xff0c;我们知道new关键字的工作&#xff1a; 1.产生一个新对象 2.将新对象的__proto__属性指向构造函数的prototype属性 3.将新对象赋值给构造函数的this 4.执行构造函数中的代码 函数实现如下&#xff1a; fun…...

SpringBoot2:请求处理原理分析-接口参数解析原理(argumentResolvers)

一、知识回顾 我们知道&#xff0c;接口的参数&#xff0c;一般都要配上注解来一起使用。 不同的参数注解&#xff0c;决定了传参的方式不同。 为什么会这样&#xff1f; 如果让你设计接口参数解析&#xff0c;你会怎么做&#xff1f; 首先&#xff0c;我们知道方法参数是形…...

java实现文本相似度计算

需求 **文本推荐&#xff1a;**有多个文本字符串&#xff0c;如何设计一个简单的统计方法&#xff08;从词频的角度设计&#xff09;&#xff0c;来计算出多个文本字符串两两之间的相似度&#xff0c;并输出大于指定相似度阈值的文本 分析理解 使用Java实现文本相似度计算的…...

基于无人机边沿相关 ------- IBUS、SBUS协议和PPM信号

文章目录 一、IBUS协议二、SBUS协议三、PPM信号 一、IBUS协议 IBUS&#xff08;Intelligent Bus&#xff09;是一种用于电子设备之间通信的协议&#xff0c;采用串行通信方式&#xff0c;允许多设备通过单一数据线通信&#xff0c;较低延迟&#xff0c;支持多主机和从机结构&a…...

django学习入门系列之第十点《A 案例: 员工管理系统4》

文章目录 6 部门管理&#xff08;原始方式&#xff09;6.6 添加界面的导入&#xff08;数据库&#xff09;6.7 删除按键的应用6.8 编辑按键的应用6.81 传值的另一种方式 6.9 提交按键的应用 往期回顾 6 部门管理&#xff08;原始方式&#xff09; 6.6 添加界面的导入&#xff…...

【2024】Math-Shepherd:无需人工注释即可逐步验证和强化法学硕士。

搜索词&#xff1a; Math-shepherd: Verify and reinforce llms step-by-step without human annotations P Wang, L Li, Z Shao, R Xu, D Dai, Y Li, D Chen, Y Wu, Z Sui Proceedings of the 62nd Annual Meeting of the Association for …, 2024•aclanthology.org 摘要…...

[苍穹外卖]-08微信支付详解

地址簿管理 分析需求: 查询地址列表/新增地址/修改地址/删除地址/设置默认地址/查询默认地址 接口设计 新增地址接口 查询用户所有的地址接口 查询默认地址接口 根据id修改地址接口 根据id删除地址接口 根据id查询地址接口 设置默认地址接口 数据库设计: 收货地址簿(address_…...

教你五句在酒桌上和领导说的话语

1、今天很荣幸能和领导一起吃饭&#xff0c;我敬领导一杯希望领导工作顺利身体健康!生意兴隆!2、我敬领导一杯感谢领导平时对我的关照先干为敬!3、谢谢领导这次给我这个机会我一定会好好把握的请领导放心我一定会好好工作绝对不辜负领导对我的期望4.领导能来这里我们感到非常骄…...

景联文科技:专业图像采集服务,助力智能图像分析

景联文科技是专业数据服务公司&#xff0c;致力于为人工智能企业提供从数据采集、清洗到标注的全流程解决方案。协助客户解决AI开发过程中数据处理环节的关键问题&#xff0c;助力企业实现智能化转型。 1.多样化的图像采集服务 景联文科技提供多样化的图像采集服务&#xff0c…...

QT QTcpSocket作为客户端

前言 QTcpSocket是Qt提供的关于TCP网络通信的类。QTcpSocket是一个异步的类&#xff0c;能够非阻塞式发送和接收数据。QTcpSocket内部封装了网络通信相关细节&#xff0c;对外提供便利的接口去帮助开发人员实现简历连接、断开连接、数据收发。 主要内容 基本使用方式 项目文…...

【系统架构设计师-2023年】综合知识-答案及详解

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【第1~2题】【第3题】【第4~5题】【第6题】【第7题】【第8题】【第9题】【第10~11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21~22题】【第23题】【第24~…...

树莓派3B点灯(1)-- 四种方法

先做个简单一丢丢的吧。。。正好最近工作也要用这个。这次直接给够四种方法&#xff0c;给好给满。分别是Python点&#xff0c;用户空间配置GPIO点&#xff0c;设备树配置内核Leds驱动点&#xff0c;自己写驱动点。 用的板子是树莓派3B&#xff0c;GPIO 26口&#xff0c;蓝光L…...

Android解析XML格式数据

文章目录 Android解析XML格式数据搭建Web服务器Pull解析方式SAX解析方式 Android解析XML格式数据 通常情况下&#xff0c;每个需要访问网络的应用程序都会有一个自己的服务器&#xff0c;我们可以向服务器提交数据&#xff0c;也可以从服务器上获取数据。不过这个时候就出现了…...

数学建模笔记—— 灰色关联分析[GRA]

数学建模笔记—— 灰色关联分析[GRA] 灰色关联分析(GRA)1. 相关概念1.1 灰色系统1.2 什么是关联分析&#xff1f;1.3 灰色关联分析 2. 关联分析步骤3. 典型例题3.1 关联分析例题3.2 灰色关联综合评价 4. python代码实现4.1 关联分析4.2 灰色关联综合评价 灰色关联分析(GRA) 1.…...

ICM20948 DMP代码详解(13)

接前一篇文章&#xff1a;ICM20948 DMP代码详解&#xff08;12&#xff09; 上一回完成了对inv_icm20948_set_chip_to_body_axis_quaternion函数第2步即inv_rotation_to_quaternion函数的解析。回到inv_icm20948_set_chip_to_body_axis_quaternion中来&#xff0c;继续往下进行…...

【论软件需求获取方法及其应用】

摘要 2023 年 3 月&#xff0c;我所在的公司承接了某油企智慧加油站平台的建设工作。该项目旨在帮助加油站提升运营效率、降低运营成本和提高销售额。我在该项目中担任系统架构设计师&#xff0c;负责整个项目的架构设计工作。 本文以该项目为例&#xff0c;详细论述软件需求获…...

使用ESP8266和OLED屏幕实现一个小型电脑性能监控

前言 最近大扫除&#xff0c;发现自己还有几个ESP8266MCU和一个0.96寸的oled小屏幕。又想起最近一直想要买一个屏幕作为性能监控&#xff0c;随机开始自己diy。 硬件&#xff1a; ESP8266 MUColed小屏幕杜邦线可以传输数据的数据线 环境 Windows系统Qt6Arduino Arduino 库…...

Nexpose v6.6.266 for Linux Windows - 漏洞扫描

Nexpose v6.6.266 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Aug 21, 2024 请访问原文链接&#xff1a;https://sysin.org/blog/nexpose-6/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.o…...

ess6新特性

1、let、const 块级作用域声明变量和常量 2、箭头函数 不能构建函数 不能new 没.prototype属性 没有this指向 this指向是根据上下文的 往上层查找 没有arguments(参数) 3、模板字符串 ${} 字符串中嵌入表达式 4、解构赋值 5、Promise 处理异步操作的标准机制 6、for of 遍历…...

如何快速上手Excel-DNA:构建专业Excel插件的完整实战指南

如何快速上手Excel-DNA&#xff1a;构建专业Excel插件的完整实战指南 【免费下载链接】ExcelDna Excel-DNA - Free and easy .NET for Excel. This repository contains the core Excel-DNA library. 项目地址: https://gitcode.com/gh_mirrors/ex/ExcelDna Excel-DNA是…...

TurboVNC终极指南:如何快速搭建高性能远程桌面系统

TurboVNC终极指南&#xff1a;如何快速搭建高性能远程桌面系统 【免费下载链接】turbovnc Main TurboVNC repository 项目地址: https://gitcode.com/gh_mirrors/tu/turbovnc TurboVNC是一个专为高性能图形应用优化的远程桌面解决方案&#xff0c;特别适合3D渲染、视频处…...

3分钟快速上手:Buzz音频转录软件完整使用指南

3分钟快速上手&#xff1a;Buzz音频转录软件完整使用指南 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 还在为音频转录烦恼…...

快如闪电!超越人类反应极限!

在工业控制以及航空航天等核心场景&#xff0c;极速启动就是高可靠系统的生命线。0.2毫秒超快启动搭配硬件看门狗&#xff0c;让设备在掉电重启、异常恢复时瞬时归位&#xff0c;关键任务永不延误&#xff01; https://www.bilibili.com/video/BV1yvLs6JEJa/?spm_id_from333.1…...

G-ratio Overload

重力加速度比&#xff08;G-ratio&#xff09;、过载&#xff08;Overload&#xff09;教改最大的特点就是知识与实际相结合&#xff0c;如果在实际生活的体现和应用。 世界一级方程式竞标赛 &#xff08;F1&#xff09;...

Codex 适配国产信创环境完整部署指南(深度技术篇)

摘要随着国内信创产业全面落地推进&#xff0c;基于大代码模型的智能编码助手 Codex&#xff0c;在国产化服务器、操作系统、CPU 架构环境下的适配、编译、部署、调优成为企业数字化转型过程中的刚需技术痛点。本文从架构原理、国产硬件适配、操作系统兼容、依赖编译、容器化部…...

如何用QKeyMapper在5分钟内搞定Windows设备按键映射:终极免费解决方案

如何用QKeyMapper在5分钟内搞定Windows设备按键映射&#xff1a;终极免费解决方案 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper&#xff0c;Qt开发Win10&Win11可用&#xff0c;不修改注册表、不需重新启动系统&#xff0c;可立即生效和停止。支持游戏手柄映射到…...

深度解析 SGLang 框架 Wan2.1 视频生成加速技术:从 49 分钟到 1 分钟的极致优化

Wan2.1 作为当前开源视频生成模型的标杆&#xff0c;其 14B 参数版本在生成质量上已经达到了商业级水准&#xff0c;但原生推理速度却令人望而却步&#xff1a;单卡 A800 生成一段 5 秒 720P 视频需要近 50 分钟。 本文基于真实生产环境的运行日志和 SGLang 源码深度分析&…...

办公效率翻倍!OpenClaw AI 数字员工实操教程

适配系统&#xff1a;Windows 10 64位&#xff08;新手专享版&#xff09; 产品亮点&#xff1a; 零门槛安装&#xff1a;无需命令行操作&#xff0c;免去复杂环境配置即开即用&#xff1a;解压即安装&#xff0c;内置完整运行环境可视化操作&#xff1a;全程图形界面&#x…...

深度解析碧蓝航线自动化脚本:架构设计与智能调度创新

深度解析碧蓝航线自动化脚本&#xff1a;架构设计与智能调度创新 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 在移动游戏…...