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

前端知识点---字符串的8种拼接方法(Javascript)

文章目录

  • 01使用 + 运算符(改变了原始字符串)
  • 02使用 += 运算符(改变了原本的字符串)
  • 03 使用 concat() 方法(不改变原本的字符串)
  • 04使用模板字面量(不改变原本的字符串)
  • 05使用 join() 方法(不改变原本的字符串)
    • ①指定分隔符
  • ②没有指定分隔符:
    • ③使用不同的分隔符:
    • ④空数组:
    • ⑤元素为不同类型:
  • 06使用 Array.prototype.reduce() 方法
  • 07使用 String.raw() 方法
  • 08总结:

01使用 + 运算符(改变了原始字符串)

这是最基础的方法

let str1 = "Hello";
let str2 = "World";
let result = str1 + " " + str2;  // 输出: "Hello World"
console.log(result);

使用 + 运算符时,可以直接连接多个字符串,也可以连接字符串和变量。
这种方法适用于简单的拼接操作。

02使用 += 运算符(改变了原本的字符串)

+= 运算符用于将字符串追加到已有的字符串后面。

let str = "Hello";
str += " World";  // str 变成 "Hello World"
console.log(str);

使用 +=,字符串的内容会被追加到原有字符串的后面。这改变了原本的字符串
适合在循环或多次拼接时使用,但对于较长的字符串拼接可能会有性能影响。

03 使用 concat() 方法(不改变原本的字符串)

concat() 方法用于连接两个或多个字符串,返回一个新的拼接后的字符串。

let str1 = "Hello";
let str2 = "World";
let result = str1.concat(" ", str2);  // 输出: "Hello World"
console.log(result);

concat() 方法不会修改原始字符串,而是返回一个新字符串。
它可以接受多个参数,用于连接多个字符串。

04使用模板字面量(不改变原本的字符串)

模板字面量使用反引号(`)来包含字符串,支持插入变量表达式

let str1 = "Hello";
let str2 = "World";
let result = `${str1} ${str2}`;  // 输出: "Hello World"
console.log(result);
let name = "Alice";
console.log(`Hello, ${name}!`);  // 输出: Hello, Alice!

想深入了解卡我另一篇文章前端知识点—模板字符串(Javascript)

05使用 join() 方法(不改变原本的字符串)

join() 是数组的方法,它将数组中的所有元素用指定的分隔符连接成一个字符串。

let strArray = ["Hello", "World"];
let result = strArray.join(" ");  // 输出: "Hello World"
console.log(result);

join() 方法是将数组的所有元素连接起来,可以指定分隔符。
适用于多个字符串拼接时,尤其是当字符串数据存储在数组中时。
基本使用:

①指定分隔符

let arr = ['Apple', 'Banana', 'Orange'];
let result = arr.join(', ');  // 使用逗号和空格作为分隔符
console.log(result);  // 输出: "Apple, Banana, Orange"

②没有指定分隔符:

如果没有指定分隔符,join() 默认会使用逗号(,)来连接元素。

let arr = ['Apple', 'Banana', 'Orange'];
let result = arr.join();  // 默认使用逗号
console.log(result);  // 输出: "Apple,Banana,Orange"

③使用不同的分隔符:

join() 可以使用任何字符串作为分隔符。例如,可以使用空格、破折号、换行符等:

let arr = ['Apple', 'Banana', 'Orange'];
let result = arr.join(' - ');  // 使用破折号作为分隔符
console.log(result);  // 输出: "Apple - Banana - Orange"

④空数组:

如果数组为空,join() 会返回一个空字符串。注意类型发生了转化

let arr = [];
let result = arr.join(', ');  // 空数组
console.log(result);  // 输出: ""

⑤元素为不同类型:

如果数组中的元素是不同类型的数据(比如数字、布尔值、对象等),它们会被转换为字符串,然后使用分隔符连接。

let arr = [1, true, null, 'Hello'];
let result = arr.join(' | ');  // 使用 ' | ' 作为分隔符
console.log(result);  // 输出: "1 | true | null | Hello"

特性:
不会改变原始数组:join() 方法返回一个新的字符串,不会修改原始的数组。
支持自定义分隔符
适用于任何类型的数组元素:即使数组中的元素是数字、对象或者其他非字符串类型,join() 方法也能将它们转换为字符串并进行拼接。

常见应用:
连接数组元素:将多个数组元素连接成一个字符串,常见于将数组中的单词或者数值连接起来。

let words = ['Hello', 'World'];
let sentence = words.join(' ');  // 连接成 "Hello World"
console.log(sentence);

格式化输出:可以使用 join() 格式化数组输出,例如打印数字列表、日期、文件路径等。

let numbers = [1, 2, 3, 4, 5];
let result = numbers.join(' - ');  // "1 - 2 - 3 - 4 - 5"
console.log(result);

06使用 Array.prototype.reduce() 方法

reduce() 方法是数组的一个函数式编程方法,它可以将数组中的元素累加成一个字符串。适用于需要更复杂拼接逻辑的场景。

let strArray = ["Hello", "World"];
let result = strArray.reduce((acc, curr) => acc + " " + curr, "");  // 输出: "Hello World"
console.log(result);

reduce() 方法允许你使用累加器(acc)来累积数组元素,适合处理复杂的拼接规则。

07使用 String.raw() 方法

String.raw() 是 ES6 提供的一个方法,主要用于获取原始字符串,通常用于处理模板字符串中的转义字符,但也可以用于拼接字符串。

let result = String.raw`Hello World`;
console.log(result);  // 输出: "Hello World"

String.raw() 用于创建原始字符串,它不会解析模板字符串中的转义字符,因此更常用于多行字符串或处理包含特殊字符的字符串。

08总结:

  • 运算符:最基础、常见,适用于简单的字符串拼接。
    += 运算符:适用于追加字符串。
    concat() 方法:连接两个或多个字符串,返回新字符串。
    模板字面量(`):最现代的拼接方式,推荐使用,适合插入变量和表达式。
    join() 方法:用于将数组元素拼接成字符串,适合多个字符串或数组中的字符串拼接。
    reduce() 方法:适用于复杂的拼接需求,尤其是需要累加或动态拼接的情况。
    String.raw():处理包含转义字符的模板字符串时使用。

相关文章:

前端知识点---字符串的8种拼接方法(Javascript)

文章目录 01使用 运算符(改变了原始字符串)02使用 运算符(改变了原本的字符串)03 使用 concat() 方法(不改变原本的字符串)04使用模板字面量(不改变原本的字符串)05使用 join() 方法(不改变原本的字符串)①指定分隔符 ②没有指定…...

用 Python 从零开始创建神经网络(一):编码我们的第一个神经元

编码我们的第一个神经元 引言1. A Single Neuron:Example 1Example 2 2. A Layer of Neurons:Example 1 引言 本教程专为那些对神经网络已有基础了解、但尚未动手实践过的读者而设计。尽管网上充斥着各种教程,但很多内容要么过于简略&#x…...

低代码开发

低代码(Low Code)是一种软件开发方法,它通过可视化界面和少量的编码来快速构建应用程序。低代码平台的核心理念是通过抽象和最小化手工编码的方式,加速软件开发和部署的过程。 定义 低代码是一种软件开发方法,它允许…...

sql server 文件和文件组介绍

sql server 文件和文件组介绍 数据库文件和文件组 - SQL Server | Microsoft Learn...

caozha-CEPCS(新冠肺炎疫情防控系统)

caozha-CEPCS,是一个基于PHP开发的新冠肺炎疫情防控系统,CEPCS(全称:COVID-19 Epidemic Prevention and Control System),可以应用于单位、企业、学校、工业园区、村落等等。小小系统,希望能为大…...

1Panel修改PostgreSQL时区

需求 1Panel安装的PostgreSQL默认是UTC时区,需要将它修改为上海时间 步骤 进入PostgreSQL的安装目录 /opt/1panel/apps/postgresql/postgresql/data打开postgresql.conf文件 修改: log_timezone Asia/Shanghai timezone Asia/Shanghai保存后重启…...

开发一个CRM系统难吗?CRM系统的实现步骤

越来越多企业意识到了,客户关系管理(CRM)系统已成为企业提升客户体验、推动销售增长的必备工具。一个高效的CRM系统不仅能够帮助企业优化客户数据管理,还能提升客户满意度,增强客户忠诚度,从而推动业务的持…...

kafka常见面试题总结

Kafka 核心知识解析 一、Kafka 消息发送流程 Kafka 发送消息涉及两个线程:main 线程和 sender 线程。在 main 线程中,会创建一个双端队列 RecordAccumulator,main 线程负责将消息发送给 RecordAccumulator,而 sender 线程则从 R…...

前端知识点---Javascript中检测数据类型函数总结

文章目录 01 typeof 运算符02 instanceof 运算符03 Array.isArray()04 Object.prototype.toString.call()05 constructor 属性06 isNaN() 和 Number.isNaN() (常用)07 isFinite() 和 Number.isFinite()08 typeof null 是 "object" 的问题 01 typeof 运算符 返回值是…...

aspose如何获取PPT放映页“切换”的“持续时间”值

aspose如何获取PPT放映页“切换”的“持续时间”值 项目场景问题描述问题1:从官方文档和资料查阅发现并没有对切换的持续时间进行处理的方法问题2:aspose的依赖包中,所有的关键对象都进行了混淆处理 解决方案1、找到ppt切换的持续时间对应的混…...

【MQTT】代理服务比较RabbitMQ、Mosquitto 和 EMQX

前言 目前要处理大量设备同时频繁发送数据的情况,MQTT协议确实是一个更优的选择,因为它特别适合需要低带宽和高效能的物联网应用,下面是对目前主流协议的对比 数据截止日期:2024年11月10日 基础设施 后端: springclo…...

【C#/C++】C++/CL中String^的含义和举例,C++层需要调用C#层对象时...

示例: String^ IDataServer::GetParam(String^ aParamName){ /// }在 C/CLI 中,String^ 和 IDataServer::GetParam(String^ aParamName) 这种写法是一种混合了 C 和 .NET 的语法,用于在 C 中操作 .NET 对象。C/CLI 是微软扩展的 C 语言&…...

Python学习从0到1 day26 第三阶段 Spark ② 数据计算Ⅰ

人总是会执着于失去的,而又不珍惜现在所拥有的 —— 24.11.9 一、map方法 PySpark的数据计算,都是基于RDD对象来进行的,采用依赖进行,RDD对象内置丰富的成员方法(算子) map算子 功能:map算子…...

【详细】如何优雅地删除 Docker 容器与镜像

内容预览 ≧∀≦ゞ 镜像与容器的区别删除容器和镜像的具体步骤1. 删除容器步骤 1:查看当前运行的容器步骤 2:停止容器步骤 3:删除容器 2. 删除镜像步骤 1:查看镜像列表步骤 2:删除镜像 3. 删除所有容器和镜像 使用 1Pa…...

Spring Spring Boot 常用注解总结

在 Java 开发中,Spring 和 Spring Boot 框架广泛应用于企业级应用开发。这两个框架提供了丰富的注解,使得开发更加高效和便捷。本文将对 Spring 和 Spring Boot 中常用的注解进行总结。 一、Spring 常用注解 1. Component 作用:用于将普通的…...

Flink独立集群+Flink整合yarn

Flink独立集群的搭建: 1、上传解压配置环境变量 # 1、解压 tar -xvf flink-1.15.4-bin-scala_2.12.tgz # 2、修改环境变量 export FLINK_HOME/usr/local/soft/flink-1.15.4 export PATH$PATH:$FLINK_HOME/bin 2、修改配置文件 cd /usr/local/soft/flink-1.15.4/…...

动态规划 之 简单多状态 dp 问题 算法专题

一. 按摩师 按摩师 状态表示 根据经验 题目要求 dp[i] 表示: 选择到i位置时, 此时的最长预约时长 但是根据题目又分成两种情况: f[i] : 选择到 i 位置的时候, nums[i] 必选, 此时的最长预约时长 g[i] : 选择到 i 位置的时候, nums[i] 不选, 此时的最长预约时长状态转移方程 …...

qt QPixmapCache详解

1、概述 QPixmapCache是Qt框架中提供的一个功能强大的图像缓存管理工具类。它允许开发者在全局范围内缓存QPixmap对象,从而有效减少图像的重复加载,提高图像加载和显示的效率。这对于需要频繁加载和显示图像的用户界面应用来说尤为重要,能够…...

Redis中的持久化

什么是 Redis 持久化? Redis 是一个内存数据库,也就是说它主要把数据存储在内存中,这样可以实现非常高的读写速度。通常,内存数据库是非常快速且高效的,但它也有一个很大的问题:数据丢失的风险。因为当 Red…...

Unity 如何优雅的限定文本长度, 包含对特殊字符,汉字,数字的处理。实际的案例包括 用户昵称

常规限定文本长度 ( 通过 UntiyEngine.UI.Inputfiled 附带的长度限定 ) 痛点1 无法对中文,数字,英文进行识别,同样数量的汉字和同样数量的英文像素长度是不一样的,当我们限定固定长度后,在界面上的排版不够美观 痛点2…...

intv_ai_mk11步骤详解:从curl验证到浏览器交互,完整闭环操作演示

intv_ai_mk11步骤详解:从curl验证到浏览器交互,完整闭环操作演示 1. 模型概述与核心能力 intv_ai_mk11是基于Llama架构的中等规模文本生成模型,专为通用文本处理任务优化。这个开箱即用的解决方案特别适合以下场景: 智能问答系…...

如祺出行2025年营收53亿:网约车贡献97%收入 净亏2.9亿

雷递网 乐天 4月1日如祺出行科技有限公司(股份代号:9680)日前发布截至2025年12月31日的财报。财报显示,如祺出行2025年营收为52.86亿元,较上年同期的24.63亿元增长114.6%。如祺出行收入主要来自网约车服务,…...

Python原生AOT编译2026架构设计图(含C-API二进制兼容性矩阵+GC停顿压缩至≤80μs实证)

第一章:Python原生AOT编译2026架构全景概览Python原生AOT(Ahead-of-Time)编译在2026年已演进为一套融合语言语义、运行时契约与硬件感知能力的系统级基础设施。它不再依赖传统解释器或JIT中间态,而是通过静态类型推导、控制流图全…...

配置MyBatis-Plus打印执行的 SQL 语句到控制台或日志文件中

配置MyBatis-Plus打印 1. 使用 log4j 或 logback 配置 MyBatis-Plus 支持多种日志框架&#xff0c;如 SLF4J, Commons Logging, Log4J, Log4J2 和 JDK logging。这里以 Logback 为例说明如何配置。 在你的 logback.xml 文件中添加如下配置&#xff1a; <configuration>&l…...

DOL-CHS-MODS整合包零基础精通指南:从安装到定制全方位教程

DOL-CHS-MODS整合包零基础精通指南&#xff1a;从安装到定制全方位教程 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 项目价值定位 DOL-CHS-MODS作为Degrees of Lewdity的中文整合方案&#xff0…...

Cursor Pro功能突破解决方案:基于cursor-free-vip的完整技术指南

Cursor Pro功能突破解决方案&#xff1a;基于cursor-free-vip的完整技术指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reache…...

7自由度开源机械臂:如何用6500美元构建AI研究新范式?

7自由度开源机械臂&#xff1a;如何用6500美元构建AI研究新范式&#xff1f; 【免费下载链接】openarm A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments. 项目地址: https://gitcode.com/GitHub_Trending/op/openar…...

Windows平台用CMake+VS2019编译NLopt的完整流程(附环境变量配置)

Windows平台用CMakeVS2019编译NLopt的完整流程&#xff08;附环境变量配置&#xff09; 在科学计算和优化算法开发领域&#xff0c;NLopt作为一个功能强大的开源库&#xff0c;提供了多种非线性优化算法的实现。对于Windows平台的C开发者而言&#xff0c;掌握从源码构建NLopt的…...

别再手动拼URL了!Spring Cloud项目里用OpenFeign调用其他服务,保姆级配置避坑指南

别再手动拼URL了&#xff01;Spring Cloud项目里用OpenFeign调用其他服务&#xff0c;保姆级配置避坑指南 微服务架构下&#xff0c;服务间的HTTP调用是家常便饭。很多开发者还在用RestTemplate手动拼接URL、处理序列化&#xff0c;不仅代码冗长&#xff0c;还容易出错。想象一…...

Omni-Vision Sanctuary 企业级部署架构设计:高可用与弹性伸缩

Omni-Vision Sanctuary 企业级部署架构设计&#xff1a;高可用与弹性伸缩 1. 企业级AI部署面临的挑战 当企业决定在生产环境中部署Omni-Vision Sanctuary这类AI服务时&#xff0c;通常会遇到几个关键挑战。首先是服务可用性问题&#xff0c;任何计划外停机都可能直接影响业务…...