es6中的模版字符串
es6中的模版字符串替代了原有的字符串拼接功能。
字符串拼接
es5方式
传统的字符串拼接在变量的左右两侧都要有+号连接。
let name = '张三';
let age = 9;
let str = '我的名字叫' + name + '我今年' + age + '岁了';
console.log(str)//我的名字叫张三我今年9岁了
如果你还想在这个字符串中加入空格回车或者其他的特殊字符,那代码就变得更难以维护,因为还需要加入转义字符才能正常显示。看下面的例子:
//我的名字叫'张三'我今年9岁了
let name = '张三';
let age = 9;
let str = '我的名字叫\'' + name + '\'我今年' + age + '岁了';
console.log(str)
es6方式
还是同样的代码,我们用es6的模版字符串形式就变得容易多了。模版字符串的开始和结束不再使用引号包裹,而是使用‘`’,变量也采用了‘${变量名}’的方式,省去了拼接时的加号和特殊字符的转义。
let name = '张三';
let age = 9;
// let str = '我的名字叫\'' + name + '\'我今年' + age + '岁了';
let str = `我的名字叫'${name}'我今年${age}岁了`
console.log(str)
而在常用需求中使用的换行回车也可以直接使用而不需要再进行拼接。
let name = '张三';
let age = 9;
let str=`<ul>
<li>${name}<li>
<li>${age}<li>
</ul>`
console.log(str);
/*
<ul>
<li>张三<li>
<li>9<li>
</ul>
*/
自定义标签的模版字符串
在日常工作处理中,经常会遇到在每个变量之间加一个标识的需求。如下面的例子
- let name = '张三';let age = 9;
- 我的名字叫张三我今年9岁了
- 我的名字叫**张三**我今年**9**岁了
上面的案例中,在变量name和age的左右两侧都加入了两个星号,这个时候自定义模版字符串标签就能够很好的解决上面的问题了。
- 首先要在模版字符串的前面放一个函数名,这个函数就是用来自定义标签的方法名
let str = strfun`我的名字叫${name}我今年${age}岁了`;//strfun是个方法
- 然后用这个函数返回一个新的字符串,这个字符串就是你处理的结果,他会覆盖str原来的值
let name = '张三';
let age = 9;
function ni() {
var strs = arguments[0];
var vals = [].slice.call(arguments, 1)
//console.log(strs, vals)
var str = '';
for (var i = 0; i < vals.length; i++) {
str += strs[i] + "**" + vals[i] + "**";
}
str += strs[strs.length - 1];
return str;
}
let str = ni`我的名字叫${name}我今年${age}岁了`;
console.log(str);
其中接收到的参数是一个数组加上一个类数组的字符串,第一个数组是除了变量名之外的内容,后面的内容是变量名。
includes()
查找一个字符串中是否包含某个字符。
let str = '我的名字叫张三我今年9岁了';
console.log(str.includes('名字'))//true
startsWith()
判断是不是以某个字符开头。
let str = '我的名字叫张三我今年9岁了';
console.log(str.startsWith('名字'))//false
endsWith()
判断是不是以某个字符结尾的
let str = '我的名字叫张三我今年9岁了';
console.log(str.endsWith('名字'))//false
padStart()
字符串补全。按照一定的字符串长度进行补全,补全内容放在字符串前面
//在字符串h的前面补0,成为一个length为2的字符串。
let h = '1';
console.log(h.padStart(2, 0))//01
es6中的模版字符串的更多相关文章
- es6语法之模版字符串
//es6语法之`${}`以及vue语法 `${ }` (模版字符串)const name = '小缘' const age = 14 console.info(`大家好,我叫${name},今年${ ...
- ES6中的模板字符串和新XSS Payload
ES6中的模板字符串和新XSS Payload 众所周知,在XSS的实战对抗中,由于防守方经常会采用各种各样严格的过滤手段来过滤输入,所以我们使用的XSS Payload也会根据实际情况作出各种各样的 ...
- es6 中的 模板字符串
Template literals are string literals allowing embedded expressions. You can use multi-line strings ...
- ES6中的模板字符串使用方法
传统的 JavaScript 语言,输出模板通常是这样写的. $('#result').append( 'There are <b>' + basket.count + '</b&g ...
- ES6中新增的字符串方法
实例方法:includes(), startsWith(), endsWith() 传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6 又提供 ...
- ES6中的模板字符串---反引号``
在react中,反引号``有特殊的含义. 如MDN中所述,模板字符串(Template literals)允许嵌入表达式,并且支持多行字符串和字符串插补特性.基本语法为以下几种: 其中第一行为最基本用 ...
- ES6中比较实用的几个特性
1.Default Parameters(默认参数) in ES6 es6之前,定义默认参数的方法是在一个方法内部定义 var link = function (height, color, url) ...
- es6学习笔记--模板字符串
这几天简单看了一下深入浅出es6这本书,感觉特实用,学习了一个新特性---模板字符串在项目开发中,拼接字符串是不可缺少的,动态创建dom元素以及js操作数据都要拼接字符串,在es6出来之前,我们都通常 ...
- es6中的部分新特性
1.es6中变量声明可以使用let声明变量,用const声明常量.例: test:function(){ { var num=10; let num1=11; const num2=12; } con ...
随机推荐
- ie 9 position:fixed 无效的两种情况
第一种情况: 运行发现在Google Chrome,FireFox都可以的,但是在IE9就不行了很是郁闷,因为IE6以上的版本都是支持fixed的属性的:上网上找了好久没找到,因为不知道关键字该怎么搜 ...
- .netcore中无法使用System.Drawing --解决方案
问题重现: 无法正常使用 解决方法: 安装System.Drawing.Common的NuGet就能正常使用了 操作之后: 这个是.netcoe中的解决办法,.net framework解决方案中添 ...
- javascript 返回上一页面:onclick="javascript:history.back(-1);"
<a href="<a href="javascript :history.back(-1)">返回上一页</a>或<a href=& ...
- 007 Reverse Integer 旋转整数
Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Example ...
- elasticsearch报错:None of the configured nodes are available: []
问题:在内网测试的时候可以正常访问,但是部署到外网上客户端连接elasticsearch报错:None of the configured nodes are available: [] 原因:默认情 ...
- 一、 Spring Cloud Eureka ,咱们先跑起来
一.Spring Cloud 简介 Spring Cloud 是一个基于Spring Boot 实现的微服务架构开发工具.是一个涉及到服务治理.分布式配置管理.负载均衡.服务容错.API网关.消息总线 ...
- 构建第一个spring boot2.0应用之项目启动运行的几种方式(二)
方法一. 配置Run/Debug Configuration 选择Main Class为项目 Application启动类(入口main方法) (2).进行项目目录,即包含pom.xml的目录下,启 ...
- EasyUI整理学习
参考博客: https://www.cnblogs.com/adc8868/p/6647680.html http://www.jeasyui.com/documentation/# http://w ...
- Spring Boot概要
1.Spring Boot使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置)的理念,使用户的项目实现快速运行.通过学习Spring Boot中的配置文件application. ...
- python 实例方法,类方法,静态方法
实例方法 class Human(object): def __init__(self, weight): self.weight = weight def get_weight(self): ret ...