ES6 模板字符串 模板字符串标记 概述

ES6和ES7及ES8新特性最新规范知识详细总结 一、ECMASript 相关介绍 ECMA概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hWfWai55-1637595380774)(images/微信截图_20201004101830.png)] ​ Ecma国际(Ecma International)是一家国际性会员制度的信息和电信标准组织。1994年之前,名为欧洲计算机制造商协会(European Computer Manufacturers Association)。因为计算机的国际化,组织的标准牵涉到很多其 阅读详情

模板字符串

ES6之前处理字符串繁琐的两个方面

  • 多行字符串

	var text = '红红火火恍恍惚惚'//这是一个正常声明的字符串
	//如果我们要换行怎么办
	var text = '红红火火恍\n恍惚惚'//一般我们是直接加一个/n
	var text = '红红火火\
	恍恍惚惚'					//或者加一个反斜杠也可以换行
	
	//再或者
	var txet = [
		'红红火火',
		'恍恍惚惚'
	].join['\n']//像这样
	

但是不管怎么写总显得比较繁琐

  • 字符串拼接

	var text = '红红' + '火火' + '恍恍' + '惚惚'

这是正常的字符串拼接,但是如果拼接的多了,一个是麻烦再一个是代码的臃肿。


ES6中新增的

在ES6中提供了模板字符串的书写,可以非常方便的拼接,要做的,仅仅是将字符串的开始或结尾改成

``//反斜杠符号

	var text = `红红火火
	恍恍惚惚`//看这样就不会报错直接就可以换行了
	//但是记住不要加table因为在字符串里他会记录下你所输入的字符串的这样也会输入进去
	

拼接


	var text = '红红' + '火火' + '恍恍' + '惚惚'//也可以像原来一样拼接了

	//但是在ES6中有更方便的方法

如果要在字符串中拼接js表达式,只需要在模板字符串中使用${js表达式}


	var text = '红红火火${1 + 1}恍恍惚惚'//这样也可以完成拼接
	//并且表达式可以是任何有意的数据
	//但是注意是表达式不是语句
	//你不能写一个for循环在那

而且表达式是可以进行嵌套的


	var text = '红红火火${666${1 + 1}}恍恍惚惚'

其原理是遇到 $时进行编译从而执行表达式,并且也可以在模板字符串中写转义字符


	var text = `红红火火
	恍恍惚惚
	\n
	`

他同样会执行换行的

那么如果我要打印出${}怎么办呢
我们只需要将$进行转义就能打印出来,因为$转义之后取消了其特殊性那么后面的大括号{}也就没有了特殊意义了。

模板字符串标记

在模板字符串书写之前,可以加上标记:


	标记名`模板字符串`
	
	var text = myTag`邓哥喜欢${love1},邓哥也喜欢${love2}。`;

	//相当于: 
	text = myTag(["邓哥喜欢", ",邓哥也喜欢", "。"], "秋葵", "香菜")
	//每一位的的字符串都会合并作为数组
	//每一位的表达式都会作为剩余参数储存起来

此时我们可以来模拟一下原理


	var love1 = "秋葵";
	var love2 = "香菜";
	
	var text = myTag`邓哥喜欢${love1},邓哥也喜欢${love2}。`;
	
	//相当于: 
	// text = myTag(["邓哥喜欢", ",邓哥也喜欢", "。"], "秋葵", "香菜")在这里向相当于吧表达式的结果传进来
	//myTag是一个函数
	function myTag(parts) {
	    const values = Array.prototype.slice.apply(arguments).slice(1);//截取到下标为1的位置
	    let str = "";
	    for (let i = 0; i < values.length; i++) {
	        str += `${parts[i]}:${values[i]}`;//进行拼接,我们还可以加上我们想要拼接的字符串
	        if (i === values.length - 1) {//判断到达values.length最后一位减一时再把最后一位的字符串拼接上
	            str += parts[i + 1];
	        }
	    }
	    return str;//此时你返回什么你所输出的就是什么
	}

	console.log(text);//此时输出		邓哥喜欢:秋葵,邓哥也喜欢:香菜。

标记是一个函数,函数参数如下:

  • 参数一:被差值分割的字符串数组
  • 后续参数:所有的差值

而myTag则是一个函数

如果我们想输入一个字符串而这个字符串需要里面是纯字符串正则表达式和其他表达式都原封不动的输入进去怎么办呢?一般我们会直接转义想要转义的字符比如转移//斜杠

而ES6中出现了一个新的方法能够将字符串里面的所有字符转换为纯字符串,书写方式是在字符串前面加上一个函数String.raw


	let text = String.raw`abc\t\nbcd`//他会原封不动的输出所有字符串

以上就是 ES6 模板字符串 模板字符串标记的全部内容了,希望对你有帮助。

ES6面试题 1.箭头函数中的this指向定义时当前周围的作用域; 2.如果使用标记模板字面量,第一个参数的值总是字符串的数组。其余的参数获取的是传递的表达式的值; 3. es6中和原型一样用来继承的class和继承是怎么实现的? 贴上 class Point { // ... } typeof Point // "function",类的数据类型就是函数 Point === Point.p... 阅读详情

相关推荐

ES6语法

本文对部分ES6语法做了介绍,以及一些基本的用法标注

weixin_50756332的博客 1535

ES6 模板字符串:让字符串处理更简洁高效

模板字符串是一种新的字符串字面量表示法,使用反引号(`)而非单引号(')或双引号(")来定义。它支持多行字符串和字符串插值,极大地简化了字符串的创建和操作。基本语法:javascript运行// 普通字符串const normalString = `这是一个模板字符串`;// 与普通字符串效果相同const regularString = '这是一个普通字符串';ES6 模板字符串通过提供多行字符串支持、字符串插值和标签模板等特性,极大地提升了 JavaScript 字符串处理的效率和可读性。

wcy041222的博客 474

在Vuejs中使用带标记的模板字符串

在Vue.js中使用带标记的模板字符串

字符串的解读和标签模板

es6字符串的扩展,字符串的编译以及是怎么样将Unicode 转换为字符串的。字符串的标签模板的遍历过程以及是如何通过编译将最终结果展现出来的。

分享互联网的有趣知识~ 1305

MatLab:数字图像处理实验

图像处理基本处理实验目的实验环境实验内容题目一代码结果题目二平移平移代码平移结果水平镜像水平镜像代码水平镜像结果垂直镜像垂直镜像代码垂直镜像结果放大放大代码放大结果缩小缩小代码缩小结果旋转旋转代码旋转结果双线性旋转旋转代码旋转结果 实验目的 1、熟悉并掌握MATLAB工具的使用;  2、实现图像的读取、显示、存储、平移、镜像、放大、缩小及旋转操作; 3、掌握常用的插值方法,并了解其优缺点。 实验环境 MatLab2016 实验内容 题目一 读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分别显

luoyao_的博客 9696

Kettle实战:如何用JavaScript脚本实现数据库表批量操作(附完整代码)

本文详细介绍了如何利用Kettle的JavaScript脚本实现数据库表批量操作,包括表名采集、循环遍历和动态SQL生成等关键步骤。通过实战案例和完整代码示例,帮助ETL工程师高效处理数据密集型任务,提升数据库操作的自动化水平。

weixin_29019241的博客 231

JS模板字符串

JS模板字符串

weixin_51241902的博客 231

DDR4内存PCB设计实战:8层板Fly-by拓扑信号完整性优化

本文深入探讨了DDR4内存条在8层PCB板上采用Fly-by拓扑时的信号完整性优化实战。文章详细解析了层叠规划、阻抗控制、电源分割、等长布线及串扰抑制等关键设计要点,并强调了仿真验证的重要性,为硬件工程师提供了从理论到实践的完整设计指南与自查清单。

weixin_29296241的博客 340

【ES6基础】模板字符串(Template String)

模板字符串是ES6中非常重要的一个新特性,这个特性使得我们处理相关业务变得更加容易。比如在处理嵌入表达式、多行字符串、字符串中插入变量、字符串格式化等方面的应用。模板字符串使用反钩号(backticks,`),而不是单引号或双引号。以下是个简单的示例:let str1 = `hello!!!`; //template string let str2 = "hello!!!"; console.lo...

weixin_34318272的博客 864

【对比学习+分割】CRIS:CLIP驱动RIS图像分割(CVPR 2022)

CRIS: CLIP-Driven Referring Image Segmentation

这个博客太懒了什么都没说 3325

定位教程7---旋转中心标定之方法二

手算相机相对机器人关系

Quintin 6230

ES6: 模板字符串

模板字符串主要用于插入表达式!

gao_zhennan的博客 1万+

华为OD机考双机位C卷 - 最左侧冗余覆盖子串 (Java)

华为OD机考双机位C卷 - 最左侧冗余覆盖子串 (Java), 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 58

es6字符串转模板字符串_现在的ES6:模板字符串

es6字符串转模板字符串 本文是Microsoft的Web开发系列的一部分。 感谢您支持使SitePoint成为可能的合作伙伴。 ES6是JavaScript的未来,而且已经存在。 它是一个最终的规范,它带来了语言必须具备的许多功能,以与当今的网络需求保持竞争力。 ES6中并非所有内容都适合您,在本系列文章中,我将展示非常方便且已经可用的功能。 如果看一下我编写JavaScript代码,您...

2182

AI辅助Android开发:从传统到智能化的技术演进

AI辅助开发的核心在于利用算法模型自动化或优化传统任务。在Android开发中,AI可应用于需求分析、设计、编码、测试和维护各阶段。需求分析:AI工具如基于NLP的模型(例如GPT系列)可解析用户需求文档,自动生成用户故事和原型设计。假设产品需求为“开发一个航班查询应用”,AI能提取关键词,输出UML图或伪代码。代码生成:使用AI代码助手(如GitHub Copilot),工程师输入自然语言描述,AI生成Java/Kotlin代码片段。

郑伟强dev的专栏 137

携程滑块、点选验证码登录识别逆向

本文分析了携程登录系统的风控机制,主要包含三种验证场景:无验证码、滑块验证码和二次图标点选验证码。通过跟踪risk_inspect风控接口,发现验证流程采用标准AES加密,需提交设备指纹等加密信息。当触发验证码时,需额外提交包含轨迹坐标的verify_msg参数及token/rid参数。最终通过风控检测后,需使用一致的指纹参数和验证token完成加密登录。文章强调所有分析仅用于学习,代码实现需确保符合法律规范。

码王吴彦祖的博客 1100

ES6中实现简单的字符串模板渲染(拼接插入字符串)

字符串拼接方法 我们都知道,在ES5中字符串拼接方法比较繁琐。同一条字符串不能换行且要频繁用+拼接字符串。以拼接几个为例 ES5字符串拼接: for(var i = 0 ; i < 100 ; i ++){ html += '<li class="box">' +'<span>hello&lt...

htcvive的博客 3620

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

用ES6实现模板字符串渲染

ES6的发布,引起了一股热潮,那么今天我们一起来看看,用ES6来实现模板字符串的渲染吧。 注意 1.模板里肯定包含js,我们要对js代码进行特殊标记***<%js代码%>*** 2.HTML是字符串不需要包裹 3,对变量进行特殊标记***<%= 变量%>*** 我们先自己创建一个模板如下: <script type="text/html" id="template"&...

weixin_46128020的博客 2066

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

字符串模板标记函数

字符串模板 ES6新增的字符串定义方式,可以通过 `` 配合${} 来进行变量的嵌入,如下示例 let name = '张三' let age = 24 // 常规定义字符串的方式 let str = '我的名字叫' + name + ', 我今年' + age + '岁了' // 字符串模板定义 let str1 = `我的名字叫${ name },我今年${ age }岁了` console.log(str === str1) // true 模板标记函数 模板标记函数的定义跟普通函数一致

weixin_41900457的博客 1028

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ES6模板字符串之标签模板的拓展

借用网上的一道题目来进行解析, function getPersonInfo(one, two, three) { console.log(one); console.log(two); console.log(three); } const person = "Lydia"; const age = 21; getPersonInfo`${person} is ${a...

weixin_45077505的博客 2149

ES6——字符串正则

字符串正则一、更好的Unicode支持1.长度2.正则3.码元码点4.二、字符串实例1.includes2.startsWith3.endsWith4.repeat三、正则中的粘连标记四、模板字符串五、模板字符串标记1.问题2.解决 一、更好的Unicode支持 1.长度 早期,由于存储空间宝贵,Unicode使用16位二进制来存储文字。我们将一个16位的二进制编码叫做一个码元(Code Unit)。 后来,由于技术的发展,Unicode对文字编码进行了扩展,将某些文字扩展到了32位(占用两个码元),并且,

xun__xing的博客 1170

ES6新特性

let和const命令 var 之前,写js变量的时候。只有一个关键字:var 但var有一个问题,就是定义的变量有时候会成为全局变量。 例如: for(var i = 0; i < 5; i++){ console.log(i); } console.log("循环外:" + i); 输出结果: 可以看出,在循环外部也可以获取到变量i的值,显然变量i的作用域范围太大了,在做复杂页面时,会带来很大的问 题。 let let所声明的变量,只在let所在的代码块内有效。 例如:(把var改成l

BadCoder的博客 1万+

ES6 课程概述②

后来,由于技术的发展,Unicode 对文字编码进行了扩展,将某些文字扩展到了 32 位(占用两个码元),并且,将某个文字对应的二进制数字叫做码点(Code Point)。在 ES6 中,提供了模板字符串的书写,可以非常方便的换行和拼接,要做的,仅仅是将字符串的开始或结尾改为反引号 ` 符号。形参和 ES6 中的 let 或 const 声明一样,具有作用域,并且根据参数的声明顺序,存在暂时性死区。这样一来,当调用函数时,如果没有给对应的参数赋值(给它的值是 undefined),则会自动使用默认值。

qq_41988669的博客 1444

es6中的模板字符串

可以减少很多时候字符串拼接时候的嵌套。用法:将原来的字符串用反引号。模板字符串可以平替单引号。'今天想追一步新剧.'// es6模板字符串。

来一颗砂糖橘 2万+

告别字符串拼接噩梦:ES6模板字符串标签函数的7个实战技巧

你是否还在为JavaScript中的字符串拼接烦恼?没完没了的引号和加号不仅让代码丑陋不堪,还容易引发难以察觉的错误。更糟糕的是,当需要处理用户输入或构建动态内容时,安全风险如影随形。今天,我们将一起探索ES6模板字符串标签函数(Tagged Template Literals)如何轻松解决这些问题,让你写出更优雅、更安全的代码。 读完本文后,你将能够: - 掌握模板字符串标签函数的基本语法和工...

gitblog_00451的博客 855
上一篇: ES6 正则表达式中的粘连标记
下一篇: ES6参数默认值 参数默认值对arguments的影响 暂时性死区
苟盛
博客等级 码龄7年 13粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值