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.mzph.cn/news/42483.shtml

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

相关文章

μCOS-Ⅲ_简介

μCOS-Ⅲ简介 文章目录 μCOS-Ⅲ简介前言一、什么是 C/OS-III&#xff1f;二、C/OS-III的特点三、C/OS-III的版本和参考资料1、C/OS-III版本2、C/OS-III源码获取3、C/OS-III参考资料 四、C/OS-III源码简介总结 前言 μcos-III是一个可以基于ROM运行的、可裁剪的、抢占式、实时…

latex 笔记:cs论文需要的排版格式

主要针对英文文献 1 基本环境 连字符 不同长度的"-"表示不同含义。 一个"-"长度的连字符用于词中两个"-"长度的连字符常用于制定范围三个"-"长度的连字符是破折号数学中的负数要用数学环境下的-得到 强调 在正式文章中, 通常不…

ARM64 程序调用标准

ARM64 程序调用标准 1 Machine Registers1.1 General-purpose Registers1.2 SIMD and Floating-Point Registers 2 Processes, Memory and the Stack2.1 Memory Addresses2.2 The Stack2.2.1 Universal stack constraints2.2.2 Stack constraints at a public interface 2.3 Th…

【C语言】字符串和内存函数的介绍 -- 详解

重点介绍处理字符和字符串的库函数的使用和注意事项。 C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&#xff0c;字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数。 一、求字符串长度⚪strlen …

【Rust】Rust学习 第十四章进一步认识 Cargo 和 Crates.io

本章会讨论 Cargo 其他一些更为高级的功能&#xff0c;我们将展示如何&#xff1a; 使用发布配置来自定义构建将库发布到 crates.io使用工作空间来组织更大的项目从 crates.io 安装二进制文件使用自定义的命令来扩展 Cargo Cargo 的功能不止本章所介绍的&#xff0c;关于其全…

【JavaScript】使用js实现滑块验证码功能与浏览器打印

滑块验证码 效果图&#xff1a; 实现思路&#xff1a; 根据滑块的最左侧点跟最右侧点&#xff0c; 是否在规定的距离内【页面最左侧为原点】&#xff0c;来判断是否通过 html代码&#xff1a; <!DOCTYPE html> <html><head><title>滑动图片验证码&…

Python爬虫常用:谷歌浏览器驱动——Chromedriver 插件安装教程

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 我们在做爬虫的时候经常要使用谷歌浏览器驱动&#xff0c;今天分享下这个Chromedriver 插件的安装方法。 话不多说&#xff0c;直接开搞&#xff0c;如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 第一步、打开谷…

使用Dockker创建vwas容器时报错的解决方法

执行命令 docker run -it -d -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs没有详细看报错之前找了各种各样的解决办法&#xff0c;都无法解决。因此以后在看报错提示的时候耐心一点看关键词Error 后来才发现启动vwas时docker报了这个错&#xff1a; OSError: …

CANoe自动化工程的搭建

基于XMLCAPL建立自动化工程 1、导入ini文件2、新建 Test Environment3、报告类型4、代码编写 1、导入ini文件 工程的配置的文件&#xff0c;配置DUT相关信息&#xff0c;具体视工程而编写内容。 2、新建 Test Environment 1、新建XML测试用例环境 2、导入XML测试用例文件 …

Jmeter常用功能-参数化介绍

JMeter也有像LR中的参数化&#xff0c;本篇就来介绍下JMeter的参数化如何去实现。 参数化&#xff1a;录制脚本中有登录操作&#xff0c;需要输入用户名和密码&#xff0c;假如系统不允许相同的用户名和密码同时登录&#xff0c;或者想更好的模拟多个用户来登录系统。 这个时…

虚拟机/双系统Ubuntu扩容

虚拟机Ubuntu扩容 1.需要删除所有的快照 2.扩展虚拟机磁盘大小 虚拟机(M)→设置(s)→硬盘(SCSI)→扩展磁盘容量 3.Ubuntu内调整分区大小 安装gparted分区工具&#xff1a;sudo apt-get install gparted 启动gparted并resize分区 4.最后最好建一个快照&#xff0c;不然gg了…

WinPlan经营大脑垂直大模型行业报告

一、引言 在当前高度信息化的时代,企业经营管理决策的重要性已经得到了广泛的认可。然而,在实际操作中,许多企业仍然在凭经验、拍脑袋进行经营决策,缺乏数据工具与专职分析团队,导致决策难、效率低等问题。针对这一问题,近年来,一种名为“WinPlan”的经营决策产品逐渐崭…

[测试报告] 爱搜Blog 自动化测试报告

目录 项目背景 项目功能 测试详情 一、设计测试用例 二、功能测试步骤结果 1. 登录页面 2. 个人博客页面 3. 博客详情页 4. 博客编辑页 三、自动化测试及测试结果 1. 测试环境 2. 登录测试用例&#xff1a; 3. 个人详情页测试用例&#xff1a; 4. 写博客并发布测试…

Android免打包多渠道统计如何实现

摘要&#xff1a; 实际上只要完成1-2步即可实现多渠道打包&#xff0c;这也意味着&#xff0c;只要每次更新App时给出一个原始包&#xff0c;运营人员就能在后台自己进行操作管理&#xff0c;简单快捷到全程无需开发人员参与。 我们都知道&#xff0c;Android 市场被分割成几十…

使用Alien对.deb包与.rpm包相互转换

目录 1、切换到root 2、更新yum&#xff08;更新比较耗时&#xff0c;不更新没试行不&#xff0c;自行斟酌是否跳过这一步&#xff09; 3、卸载ibus 4、安装Alien及其依赖包 5、安装Alien 6、将.deb转换成.rpm包 7、安装RPM包 8、如果报错 9、将.rpm转换成.deb包 10、安…

MongoDB(三十九)

目录 一、概述 &#xff08;一&#xff09;相关概念 &#xff08;二&#xff09;特性 二、应用场景 三、安装 &#xff08;一&#xff09;编译安装 &#xff08;二&#xff09;yum安装 1、首先制作repo源 2、软件包名&#xff1a;mongodb-org 3、启动服务&#xff1a…

通过 Amazon SageMaker JumpStart 部署 Llama 2 快速构建专属 LLM 应用

来自 Meta 的 Llama 2 基础模型现已在 Amazon SageMaker JumpStart 中提供。我们可以通过使用 Amazon SageMaker JumpStart 快速部署 Llama 2 模型&#xff0c;并且结合开源 UI 工具 Gradio 打造专属 LLM 应用。 Llama 2 简介 Llama 2 是使用优化的 Transformer 架构的自回归语…

【JavaEE基础学习打卡04】JDBC之MySQL数据库安装

目录 前言一、JDBC与数据库二、MySQL数据库1.MySQL数据库2.MySQL服务下载安装3.MySQL服务启动停止4.MySQL命令 三、MySQL客户端安装总结 前言 &#x1f4dc; 本系列教程适用于JavaWeb初学者、爱好者&#xff0c;小白白。我们的天赋并不高&#xff0c;可贵在努力&#xff0c;坚持…

【 Cocos Creator 项目实战】益智游戏《2048》(附带完整源码工程)

本文乃Siliphen原创&#xff0c;转载请注明出处 目录 游戏介绍 概述 游戏整体流程 游戏框架设计 主要流程控制类 本文项目的代码组织结构 构建游戏世界 数字方块 地图 触摸手势识别 防触摸抖动 判断用户输入的方向 地图 任意大小的地图 初始化地图大小 地图绘制…

无涯教程-Perl - sysread函数

描述 该函数等效于C /操作系统函数read(),因为它绕过了诸如print,read和seek之类的函数所采用的缓冲系统,它仅应与相应的syswrite和sysseek函数一起使用。 它从FILEHANDLE中读取LENGTH个字节,并将输出放入SCALAR中。如果指定了OFFSET,则将数据从OFFSET字节写入SCALAR,从而有效…