ES6给字符串带来了很多实用性的扩展:模板字符串,标签模板,repeat函数、includes函数,startsWith函数,endsWith函数,codePointAt函数,String.fromCodePoint函数,String.raw函数。Unicode编码的知识。
1.模板字符串
//变量放入${ }即可
let name = "Jacky";
let occupation = "doctor";
//模板字符串拼接
let str = `He is ${name},he is a ${occupation}`;
2.标签模板(新特性)
var name = "张三";
var height = 1.8;
tagFn`他叫${name},身高${height}米。`;
//标签+模板字符串——标签模板(新的语法规范)
//定义一个函数,作为标签
function tagFn(arr,v1,v2){
console.log(arr);
//结果:[ "他叫",",身高","米。" ]
console.log(v1);
//结果:张三
console.log(v2);
//结果:1.8
}
规律了:第一个参数arr是数组类型,它是内容是模板字符串中除了${ }以外的其他字符,按顺序组成了数组的内容,所以arr的值是[ "他叫", ",身高" , "米。" ];第2,3个参数则是模板字符串中对应次序的变量name和height的值。
3.repeat函数:将目标字符串重复N次,返回一个新的字符串,不影响目标字符串。
var name1 = "1"; //目标字符串
var name2 = name1.repeat(3);
//变量name1被重复三次;
console.log(name1);
//结果:1
console.log(name2);
//结果:111
4.includes函数:判断字符串中是否含有指定的子字符串,返回true表示含有和false表示未含有。第二个参数选填,表示开始搜索的位置。
var name = "123"; //目标字符串
name.includes('3');
//true, 含有
name.includes('4');
//false, 不含有
name.includes('1',1);
//false, 从第2个字符开始搜索, 不含有
传统的做法我们可以借助indexOf( )函数来实现,如果含有指定的字符串,indexOf( )函数就会子字符串首次出现的位置,不含有,则返回-1。我们通过返回值是否为-1来判断字符串中是否含有指定的子字符串,但是,我们现在可以用includes( )函数代替indexOf( )函数,因为它的返回值更直观(true或false),况且我们并不关心子字符串出现的位置。
注意,上面最后一句代码,第二个参数为1,表示从第2个字符“端“开始搜索,第一个字符”前“的位置是0;
5.startsWith函数:判断指定的子字符串是否出现在目标字符串的开头位置,第二个参数选填,表示开始搜索的位置。
var name = "123"; //目标字符串
name.startsWith('1');
//true,出现在开头位置
name.startsWith('2');
//false,不是在开头位置
name.startsWith('2',1);
//true,从第2个字符开始
6.endsWith函数:判断子字符串是否出现在目标字符串的尾部位置,第二个参数选填,表示针对前N个字符。
var name = "123456"; //目标字符串
name.endsWith('1');
//false,不在尾部位置
name.endsWith('6');
//true,在尾部位置
name.endsWith('6',5);
//false,只针对前5个字符
name.endsWith('6',6);
//true,针对前6个字符
7.codePointAt函数
var str1 = "前端";
var str2 = "𠮷";
str1.length; //length为2
str2.length; //length为2
str1.charAt(0); //前
str1.charAt(1); //端
str2.charAt(0); //'�'
str2.charAt(1); //'�'
=========================
var str = "𠮷";
str.codePointAt(); //结果:134071
8.String.fromCodePoint函数
String.fromCodePoint(134071); //结果:"𠮷"
9.String.raw函数
console.log(`hello\nworld`);
//输出:hello
world
console.log(String.raw`hello\nwolrd`);
//输出:hello\nwolrd
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。