优秀的编程知识分享平台

网站首页 > 技术文章 正文

每天学点ES6 —— 字符串无痛拼接

nanyue 2024-07-20 23:48:51 技术文章 10 ℃

已发ES6文章:

1~14 点这里

15 可暂停的函数 Generator

16 Promise (一)

17 Promise (二)

18

19 类的静态方法和属性

20 模块化

假期快乐 (*^▽^*),大家多出去走动走动哦(不下雨不下雪的话=。=)

本篇只介绍ES6字符串部分实用的扩展内容

查找

indexOf方法查找是否含有某个字符串时,对于结果需要判断是否等-1,比较麻烦

1. includes(str) 返回bool,判断是否含有某个字符串

var str='ni xi huan es6 ma ?';

str.includes('es6');

//true

2. startsWith(str) endsWith(str) 返回bool,判断是否以某个字符串开头或结尾

var str='ni xi huan es6 ma ?';

str.startsWith('ni');

//true

str.endsWith('ma');

//false

模板字符串

es5拼接字符串有时相当恶心,各种单双引号嵌套,es6提供的字符串模板写法方便的多

语法

使用反引号 ‘`’表示字符串,反引号内部的字符串允许换行和使用 ${xx} 模板

xx 可以是变量、表达式、函数、其他类型会被自动转为字符串

var name='全栈前端';

var str=`

Q : ni zhi dao shen me jiao da qian duan ma ?

${name}: mu ji ...

`;

str;

//

Q : ni zhi dao shen me jiao da qian duan ma ?

全栈前端: mu ji ...

注:

1. 反引号内的换行和缩进都会被保留

2. 反引号内的反引号需要转义

标签模板

模板字符串前加一个函数名,即为标签模板,函数用来进一步处理这个字符串

fn `str`;

function fn(strarr, value1, value2, ...){

}

其中fn返回一个字符串,fn的参数:

strarr 指被${}分割的字符串,形成的数组

value1 ,value2 值${}内的值

var b='B';

var d='D';

var str=tpl `a ${b} c ${d} e`;

function tpl(arr,v1,v2){

 return arr[0] + v1.toLowerCase() + arr[1] + v2.toLowerCase() + arr[2];

}

str;

//"a b c d e"

注:

标签模板的强大在于灵活性,输入经过函数处理输出,完全是两码事,React的jsx语法也是利用了此方法

一般用不到,不再细述。

文章到这里结束,下篇 ? ES6代码规范(最后一篇)

【关注一下不迷路~】


【html】【css】【html】【css】【javascript】【html】【javascript】【css】【javascript】【css】

Tags:

最近发表
标签列表