JavaScript 模板字符串 功能 用法运用 详解

news/2025/3/10 19:35:16/文章来源:https://www.cnblogs.com/baisemoshui/p/18763462

模板字符串(Template Literals),也称为模板字面量,是 ES6(ECMAScript 2015)引入的一种新的字符串表示法。它们提供了一种更简洁、更强大的方式来处理多行字符串和字符串插值。以下是模板字符串的功能和用法的详细介绍:

基本语法

模板字符串使用反引号 (``) 来包裹字符串内容,而不是传统的单引号 (') 或双引号 (")。

const name = "Alice";
const greeting = `Hello, ${name}!`;
console.log(greeting); // 输出: Hello, Alice!

主要功能

  1. 多行字符串

    使用模板字符串可以很方便地表示多行字符串,无需使用转义字符 \n 或字符串连接符 +

    const multiLineString = `This is a
    multi-line
    string.`;
    console.log(multiLineString);
    
  2. 字符串插值

    模板字符串支持使用 ${} 语法进行变量插值。在大括号中可以放入任意的 JavaScript 表达式。

    const a = 5;
    const b = 10;
    console.log(`The sum of ${a} and ${b} is ${a + b}.`); // 输出: The sum of 5 and 10 is 15.
    
  3. 嵌入表达式

    在模板字符串中,可以嵌入任意的 JavaScript 表达式。

    const obj = { name: "Bob", age: 30 };
    console.log(`Name: ${obj.name}, Age: ${obj.age}`);
    
  4. 调用函数和方法

    你还可以在模板字符串中直接调用函数和方法。

    function capitalize(word) {return word.charAt(0).toUpperCase() + word.slice(1);
    }const word = "template";
    console.log(`This is a ${capitalize(word)} String.`); // 输出: This is a Template String.
    
  5. 标签模板(Tagged Templates)

    标签模板允许你在模板字符串前指定一个函数,该函数将用于处理模板字符串和插值。这对于实现自定义的字符串处理逻辑非常有用,比如国际化或防止 XSS 攻击。

    function tagExample(strings, ...values) {console.log(strings);console.log(values);
    }const name = "Charlie";
    tagExample`Hello, ${name}!`; 
    // 输出:
    // [ 'Hello, ', '!', '' ]
    // [ 'Charlie' ]
    

使用注意事项

  • 安全性:当使用用户输入的数据进行字符串插值时,要小心避免潜在的 XSS(跨站脚本)攻击。

  • 兼容性:模板字符串在绝大多数现代浏览器中都已支持,但如果需要支持非常旧的浏览器(如 IE),可能需要使用 Babel 等工具进行转译。

总结

模板字符串提供了一种强大且灵活的方式来处理字符串,特别是在需要多行字符串和字符串插值的场景下。它们不仅提高了代码的可读性,还减少了字符串操作中的错误和复杂性。结合标签模板的功能,模板字符串可以实现更高级的字符串处理逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/896934.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

transformer 中的掩码类型

知识是我们已知的也是我们未知的基于已有的知识之上我们去发现未知的由此,知识得到扩充我们获得的知识越多未知的知识就会更多因而,知识扩充永无止境

如何设计、维护和推广 API:专业人士的实用指南

API 在今天的数字化环境中扮演着至关重要的角色,它们作为系统和应用程序之间的连接纽带。对于公司而言,打造用户喜爱的 API、有效地维护它们并成功地在内部和外部推广,不仅能提高数字价值,还能带来巨大的业务收益。 API 设计是创建一个标准化、易于理解且稳定的应用程序接口…

springboot引入nacos

springboot引入nacos 一、 环境准备(windows为例)安装nacos(github镜像网址:Releases alibaba/nacos) 推荐下载发行版启动nacos本地服务 下载完毕,建议解压到没有中文路径的文件夹,在bin目录下打开cmd对话框输入下面命令启动nacos startup.cmd -m standalone启动成功出现以…

95%开发者不知道的调试黑科技:Apipost让WebSocket开发效率翻倍的秘密

在现代 Web 开发中,Websocket 作为一种常见的 Web 协议,与 Restful API 有着本质的不同。Restful API是基于请求-响应模式的单向通信,而 WebSocket 提供全双工通信渠道,允许客户端和服务器之间进行实时双向数据传输。这种特性使得它在需要实时交互的场景中大放异彩,比如 I…

题解:P9221 「TAOI-1」Pentiment

P9221 解题报告 一眼线段树优化 dp,但是调了7h。 首先考虑朴素 dp,设 \(dp_{i,j}\) 表示走到第 \(i\) 行第 \(j\) 列的方案数,转移: \[dp_{i,j}=\sum dp_{i-1,k} \]其中 \(k\) 表示第 \(i\) 行可以走到 \(j\) 的列。 比如如果第 \(i\) 行是下面这种情况:当 \(j=3\) 时,\(…

【Java开发】Tools4AI:一个适用于企业Java应用的开源智能体框架

一、简介 GitHub主页:(https://github.com/vishalmysore/Tools4AI) Tools4AI 是一个基于 Java 的开源智能体框架,它为企业Java应用程序提供了一种集成人工智能的独特方法。作为一个大型动作模型(Large Action Model,LAM)智能体,Tools4AI 能够根据自然语言指令自主执行任务…

英语328个词缀和词根汇总(14张图)

在所有的单词记忆法中,构词法是最科学、记忆效果最佳的词汇记忆法。下面整理了高中常用的词根、词缀。利用有限的词根、词缀对英语单词进行构词分析和解形释义,单词变得好认又好记,词义也一目了然。通过构词法记单词,可以举一反三,记一识十,从而达到事半功倍的记忆效果。…

No.48 ES6---数组扩展之扩展运算符和新增方法

一、数组扩展之扩展运算符 1.扩展运算符扩展运算符(spread)是三个点(…)。将一个数组转为用逗号分隔的参数序列。<script>var arr = [10,23,45,6,7];//以前获取数组中的每个元素for(let i = 0;i<arr.length;i++){console.log(arr[i]);}//有了扩展运算符之后console.lo…

Zabbix 7.0 LTS 部署

Zabbix 7.0LTS教程 一、环境介绍 操作系统:Rocky Linux 9.5 软件版本:7.0LTS 二、安装教程 官网:Zabbix:企业级开源监控解决方案 点击右上角的下载ZABBIX选择对应的环境:选择之后往下拉会看到相应的部署步骤:2.1 软件源配置 按照文档提示:如果有epel.repo源码,需要先注释…

IDC机房无人值守:智能运维一体化解决方案

“智和网管平台”,通过实时监控、远程配置等技术实现数据中心机房的自动检测、自动报警、自动修复等功能,从而达到无需人工干预的机房运维状态,减少人为因素对设备运行的干扰,增强机房设备、设施数据的直观可视性、提高其利用率。 企业数字化转型以及5G、物联网、云…

rust学习二十.1、不安全代码之原始指针(裸指针)

一、前言 指针在前面的篇幅中已经介绍过许多,但主要是智能指针。 智能指针管理堆上的数据,并且受到rust的所有权和借用规则管理(注意,这里的所有权和借用有时候不同于最原始的那种)。 智能指针好歹能管着这些数据,但是rust中存在一些不能使用所有权管理的数据,它们需要利…