javaScript:模板字符串让你忘记字符串拼接

目录

一.前言

二.模板字符串的使用

1.介绍

 2.模板字符串 支持换行

 模板字符串更适合元素写入

innerHTML模板字符串写法

3.模板字符串中,可以运行表达式

4.模板字符串中可以运行函数

 三.总结

语法:

多行字符串:

变量插值:

代码可读性:

容错性:


一.前言

       JavaScript中的模板字符串(Template Strings),也称为模板字面量,是一种方便创建多行字符串和插入表达式的方式。使用模板字符串可以将变量、表达式或函数嵌入到字符串中,而无需使用字符串连接操作符(+)。模板字符串使用反引号(`)作为字符串的定界符,而不是单引号或双引号。

二.模板字符串的使用

1.介绍

模板字符串

    使用 反引号 `` 作为字符串的标识

    在模板字符串中使用变量,使用方法是${变量名}

模板字符串对比传统字符串拼接在写法上和功能上都有明显优势

 let username = '岳飞'let age = 36let story = '打败金兀术'let str = '姓名:'+username+'年龄:'+age+'事迹:'+storyconsole.log(str);/*模板字符串使用 反引号 `` 作为字符串的标识在模板字符串中使用变量,使用方法是${变量名}*/ let str1 = `姓名: ${username},年龄: ${age},事迹:${story}`console.log(str1);

 2.模板字符串 支持换行

    /*模板字符串 支持换行*/let str2 = `姓名:${username}姓名:${age}事迹:${story}`console.log(str2)

 模板字符串更适合元素写入

        在JavaScript中,使用字符串拼接进行换行可能会导致错误(或使用转义符(\n)插入换行符比较麻烦),但使用模板字符串则不会出现此问题。而且,通过使用模板字符串和innerHTML属性可以实现换行效果。相比之下,模板字符串对于代码的可读性和容错性都更高。

innerHTML模板字符串写法

  let btn = document.getElementById('btn')let list = document.getElementById('list')btn.onclick = function(){let html = ''for (let i = 0; i < 10; i++) {html += `<li><h1>${username}</h1><p>${age}</p><p>${story}</p></li>`}list.innerHTML = html}

3.模板字符串中,可以运行表达式

  /*模板字符串中,可以运行表达式*/let str3 = `1+1=${1+1}`console.log(str3);let str4 = `同时天涯沦落人,${3>4? '莫愁前路无知己':'从此消亡是路人'}`console.log(str4);

 

 

4.模板字符串中可以运行函数

/*
模板字符串中可以运行函数
*/    
function show(){return '莫愁前路无知己'
}
let str5 = `${show()},凭君传语报平安`
console.log(str5);

 三.总结

       模板字符串和字符串拼接都用于创建字符串,但它们在语法和功能上有一些区别。下面是模板字符串和字符串拼接的对比总结:

语法:

  • 字符串拼接使用加号(+)或concat等方法来连接多个字符串。
  • 模板字符串使用反引号()作为定界符,并使用占位符${}`插入变量、表达式或函数调用。

多行字符串:

  • 字符串拼接需要使用换行符和字符串连接操作符来创建多行字符串,或者使用转义符(\n)插入换行符。
  • 模板字符串直接支持多行字符串,无需使用换行符或连接操作符,可以保留字符串中的换行符和缩进。

变量插值:

  • 字符串拼接需要将变量通过加号或其他方法与字符串连接起来。
  • 模板字符串可以在占位符${}中直接插入变量、表达式或函数调用,并与其他字符串内容无缝搭配。

代码可读性:

  • 字符串拼接可能会造成较长、难以阅读和维护的代码,尤其是在含有大量变量或复杂逻辑的情况下。
  • 模板字符串提供了更清晰、更易读的语法,将变量直接嵌入字符串中,使代码更易于理解和修改。

容错性:

  • 字符串拼接容易出现遗漏加号或出错的情况,特别是在复杂的拼接操作中。
  • 模板字符串在插入变量或表达式时更直观且容易检查,并且避免了常见的错误。

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

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

相关文章

SpringBoot统⼀功能处理

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 本章是讲Spring Boot 统⼀功能处理模块&#xff0c;也是 AOP 的实战环节&…

学习 Linux 系统路线图

在计算机科学领域&#xff0c;Linux 操作系统以其稳定性、灵活性和卓越性能而受到广泛欢迎。要真正掌握 Linux 系统&#xff0c;我们需要深入了解其关键组成部分&#xff0c;包括系统、内存、进程、网络和存储等模块。让我们深入探索这些模块&#xff0c;以建立起对 Linux 系统…

归并排序:从二路到多路

前言 我们所熟知的快速排序和归并排序都是非常优秀的排序算法。 但是快速排序和归并排序的一个区别就是&#xff1a;快速排序是一种内部排序&#xff0c;而归并排序是一种外部排序。 简单理解归并排序&#xff1a;递归地拆分&#xff0c;回溯过程中&#xff0c;将排序结果进…

深度学习在MRI运动校正中的应用综述

运动是MRI中的主要挑战之一。由于MR信号是在频率空间中获取的&#xff0c;因此除了其他MR成像伪影之外&#xff0c;成像对象的任何运动都会导致重建图像中产生伪影。深度学习被提出用于重建过程的几个阶段的运动校正。广泛的MR采集序列、感兴趣的解剖结构和病理学以及运动模式&…

vue3使用vuex

VUEX官方文档,可以学习详细,这篇笔记是写vue2升级vue3后使用vuex,或者忘记如何使用vuex做状态管理的情况 vueX状态管理 Vue 3 与 Vue 2 有很多不同之处&#xff0c;但 Vuex 的核心概念——State、Getters、Mutations、Actions 和 Modules——保持基本一致。Vuex 4 是为 Vue 3 …

部署工业物联网可以选择哪些通信方案?

部署工业物联网有诸多意义&#xff0c;诸如提升生产效率&#xff0c;降低管理成本&#xff0c;保障生产品质稳定&#xff0c;应对长期从业劳动力变化趋势等。针对不同行业、场景&#xff0c;工业物联网需要选择不同的通信方案&#xff0c;以达到成本和效益的最佳平衡。本篇就简…

drawio----输出pdf为图片大小无空白(图片插入论文)

自己在写论文插入图片时为了让论文图片放大不模糊&#xff0c;啥方法都试了&#xff0c;最后摸索出来这个。 自己手动画图的时候导出pdf总会出现自己的图片很小&#xff0c;pdf的白边很大如下如所示&#xff0c;插入论文的时候后虽然放大不会模糊&#xff0c;但是白边很大会显…

开源了一套基于springboot+vue+uniapp的商城,包含分类、sku、商户管理、分销、会员、适合企业或个人二次开发

RuoYi-Mall-JAVA商城-电商系统简介 开源了一套基于若依框架&#xff0c;SringBoot2MybatisPlusSpringSecurityjwtredisVueUniapp的前后端分离的商城系统&#xff0c; 包含分类、sku、商户管理、分销、会员、适合企业或个人二次开发。 前端采用Vue、Element UI&#xff08;ant…

【C#】条码管理操作手册

前言&#xff1a;本文档为条码管理系统操作指南&#xff0c;介绍功能使用、参数配置、资源链接&#xff0c;以及异常的解决等。思维导图如下&#xff1a; 一、思维导图 二、功能操作–条码打印&#xff08;客户端&#xff09; 2.1 参数设置 功能介绍&#xff1a;二维码图片样…

正则表达式:贪婪与非贪婪模式

正则中的三种模式&#xff0c;贪婪匹配、非贪婪匹配和独占模式。 在这 6 种元字符中&#xff0c;我们可以用 {m,n} 来表示 &#xff08;*&#xff09;&#xff08;&#xff09;&#xff08;?&#xff09; 这 3 种元字符&#xff1a; 贪婪模式&#xff0c;简单说就是尽可能进行…

材料行业可以转IC设计后端吗?

近来有许多材料行业的小伙伴通过后台来问我对于职业规划的看法&#xff0c;甚至有些小伙伴直接点明了某个行业适不适合自己&#xff0c;那么我这边仅以近年来比较热门的数字芯片设计来展开讲讲&#xff0c;材料适不适合转行做IC呢。 对于理工科的同学而言&#xff0c;选择哪个…

Day14 01-Shell脚本编程详解

文章目录 第一章 Shell编程【重点】1.1. Shell的概念介绍1.1.1. 命令解释器4.1.1.2. Shell脚本 1.2. Shell编程规范1.2.1. 脚本文件的结构1.2.2. 脚本文件的执行 1.3. Shell的变量1.3.1. 变量的用法1.3.2. 变量的分类1.3.3. 局部变量1.3.4. 环境变量1.3.5. 位置参数变量1.3.6. …

前端-初始化Vue3+TypeScript

如果使用如下命令初始化项目&#xff0c;项目很干净&#xff0c;很适合了解项目的各个结构。 npm init vitelatest如果使用如下命令初始化项目&#xff0c;是可以选择你需要的组件 npm init vuelatest

SpringBoot系列之集成Resteasy实现RESTFul接口

JAX-RS&#xff1a;JavaAPI for RESTful Web Services&#xff0c;JAX-RS是可以用可以用于实现RESTFul应用程序的JAVA API&#xff0c;给开发者提供了一系列的RESTFul注解 EasyRest&#xff1a;这是Jboss开源的&#xff0c;一款用来定义实现RESTFul应用程序的框架&#xff0c;…

ASP.NET WEB API通过SugarSql连接MySQL数据库

注意&#xff1a;VS2022企业版可以&#xff0c;社区版可能存在问题。实体名称和字段和数据库中的要一致。 1、创建项目&#xff0c;安装SqlSugarCore、Pomelo.EntityFrameworkCore.MySql插件 2、文件结构 2、appsettings.json { “Logging”: { “LogLevel”: { “Default”: …

.netcore grpc身份验证和授权

一、鉴权和授权&#xff08;grpc专栏结束后会开启鉴权授权专栏欢迎大家关注&#xff09; 权限认证这里使用IdentityServer4配合JWT进行认证通过AddAuthentication和AddAuthorization方法进行鉴权授权注入&#xff1b;通过UseAuthentication和UseAuthorization启用鉴权授权增加…

YOLO系列解读DAY2—YOLOV1预测代码转换

一、说在前面 小伙伴们好&#xff0c;博主很久没有写博客了&#xff0c;略感生疏&#xff0c;不到之处敬请谅解&#xff0c;欢迎指出文中错误&#xff0c;大家一起探讨。欲看视频讲解&#xff0c;可转至博主DouYin、B站&#xff0c;欢迎关注&#xff0c;链接如下&#xff1a; …

Dockerfile自定义镜像

文章目录 Dockerfile自定义镜像镜像结构Dockerfile语法构建java项目 小结 Dockerfile自定义镜像 常见的镜像在DockerHub就能找到&#xff0c;但是我们自己写的项目就必须自己构建镜像了。 而要自定义镜像&#xff0c;就必须先了解镜像的结构才行。 镜像结构 镜像是将应用程序及…

java知识-JVM线程四大引用

一、JVM (1) 基本概念&#xff1a; JVM 是可运行 Java 代码的假想计算机 &#xff0c;包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收&#xff0c;堆 和 一个存储方法域。JVM 是运行在操作系统之上的&#xff0c;它与硬件没有直接 的交互。 (2) 运行过程&#x…

File 类的用法, InputStream和Reader, OutputStream和Writer 的用法

前言 普通的文件长这样&#xff1a; 其实目录也是一种特殊文件&#xff1a; 一、文件前缀知识 &#xff08;一&#xff09;绝对路径和相对路径 以盘符开头的的路径&#xff0c;叫做绝对路径&#xff0c;如&#xff1a;D:\360Downloads\cat.jpg 以.或..开头的路径&#xff0c…