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中的模版字符串的更多相关文章

  1. es6语法之模版字符串

    //es6语法之`${}`以及vue语法 `${ }` (模版字符串)const name = '小缘' const age = 14 console.info(`大家好,我叫${name},今年${ ...

  2. ES6中的模板字符串和新XSS Payload

    ES6中的模板字符串和新XSS Payload 众所周知,在XSS的实战对抗中,由于防守方经常会采用各种各样严格的过滤手段来过滤输入,所以我们使用的XSS Payload也会根据实际情况作出各种各样的 ...

  3. es6 中的 模板字符串

    Template literals are string literals allowing embedded expressions. You can use multi-line strings ...

  4. ES6中的模板字符串使用方法

    传统的 JavaScript 语言,输出模板通常是这样写的. $('#result').append( 'There are <b>' + basket.count + '</b&g ...

  5. ES6中新增的字符串方法

    实例方法:includes(), startsWith(), endsWith() 传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6 又提供 ...

  6. ES6中的模板字符串---反引号``

    在react中,反引号``有特殊的含义. 如MDN中所述,模板字符串(Template literals)允许嵌入表达式,并且支持多行字符串和字符串插补特性.基本语法为以下几种: 其中第一行为最基本用 ...

  7. ES6中比较实用的几个特性

    1.Default Parameters(默认参数) in ES6 es6之前,定义默认参数的方法是在一个方法内部定义 var link = function (height, color, url) ...

  8. es6学习笔记--模板字符串

    这几天简单看了一下深入浅出es6这本书,感觉特实用,学习了一个新特性---模板字符串在项目开发中,拼接字符串是不可缺少的,动态创建dom元素以及js操作数据都要拼接字符串,在es6出来之前,我们都通常 ...

  9. es6中的部分新特性

    1.es6中变量声明可以使用let声明变量,用const声明常量.例: test:function(){ { var num=10; let num1=11; const num2=12; } con ...

随机推荐

  1. 禁止tableview 像上滑动

    tableView有一个bounces属性.默认YES,所以tableView上下用力拉都会有弹性滑动,如下设置可以禁止,但是这样的话上下弹性都没了 而经常的需求是上方不要弹性,下方要弹性,可以用监听 ...

  2. js怎样实现继承

    js实现继承的5种方式 js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承有以下通用的几种方式1.使用对 ...

  3. P1984 [SDOI2008]烧水问题(具体证明)

    传送门 我见过的第二恶心的题,第一是糖果传递... 以下是一堆具体的证明,自己想的,可能考虑不周,不想看也可以直接看结论 首先有一个很显然的贪心,烧开的水要尽量把热量传递出去 所以有一个比较显然的方法 ...

  4. vbox和宿主机共享文件夹

    首先,查看vbox安装的ubuntu是否支持vboxsf模块 sudo modprobe vboxsf dmesg | grep vboxsf 如果没有安装,需要安装vboxsf模块:(如果安装了请跳 ...

  5. 机器学习读书会的分享 - Reinforcement Learning: An Introduction 第4-6章

    我在机器学习读书会的分享slides,关于DP.MC.TD方法: https://mp.weixin.qq.com/s/r8wZw4iZwFCz0nnakutY3Q 内容如下:

  6. node官方docker镜像运行bower 提示 permission denied 解决方法

    在使用node官方docker镜像部署node应用时,应用需要npm的scripts中运行bower install 来安装前端包,但是用docker 构建时失败,提示 permission dein ...

  7. 读取java配置文件properties

    java项目里很多参数都是写在配置文件properties上,如果需要读取的话,可以使用jdk里提供的Properties类进行处理. 具体写法如下: public class PropertiesC ...

  8. The sventh day

    call it a day 是个相当古老的习惯用语,沿用至今已经有一百五十多年了,但是人民仍然常常用到她. call it a day 可不是“叫一天”的意思哦, 这里是收工的,下班的意思 I thi ...

  9. Tomcat8

    一.Apache Tomcat 8介绍 Tomcat 8.0.0-RC3 (alpha) Released                                                ...

  10. Markdown引用图片,且不使用网上链接的解决方法

    首先介绍下markdown使用图片的3种方法 使用本地图片,缺点是要用到本地的绝对路径,不适合对文档做迁移,否则会有图片链接失效的情况 ![thisisimage](C:\\Users\\Goose\ ...