已发ES6文章:
1~14 点这里
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】