一.模板字符串
var name="张三";
var height=1.8;
var str=`我叫${name},身高${height}米`;
console.log(str);
//我叫张三,身高1.8米
image.png
二.标签模板
var name="张三";
var height=1.8;
tagFn`他叫 ${name} ,身高 ${height} 米`;
//这样就是标签模板,可以理解为标签函数+模板字符串,这是一种新的语法规范
function tagFn( arr,v1,v2){
console.log(arr);
console.log(v1);
console.log(v2);
}
image.png
标签模板是ES6给我们带来的一种新语法,它常用来过滤用户的非法输入和多语言转换。
三.repeat()函数:将目标字符串重复N次,返回一个新的字符串,不影响目标字符串。
var name="张三";
var name2=name.repeat(3);
console.log(name);
console.log(name2);
image.png
四.incluldes():判断字符串中是否含有指定的子字符串,返回true代表含有,false表未含有。第二个参数选填,表示开始搜索的位置。
1.
var name="张三";
console.log(name.includes("张")); //true
2.
var name="张三是工程师";
console.log(name.includes("工",4));//false
3.
var name="张三是工程师";
console.log(name.includes("工",3));//true
五.startsWith()函数与endsWith()函数
1.startsWith()函数:判断指定的子字符串是否出现在目标字符串的开头位置,第二个参数选填,表示开始搜索的位置。
2.endsWith()函数:
判断指定的子字符串是否出现在目标字符串的尾部位置,第二个参数选填,表示针对前N个字符。
1.startsWith():
var name="张三是工程师";
var result=name.startsWith("张");
console.log(result);//true
2.endsWith():
var name="张三是工程师";
var result=name.endsWith("师");
console.log(result);//true
六.codePointAt()函数与String.fromCodePoint函数
1.codePointAt()函数:这个函数可以正确的识别出4个字节的字符,并且返回它的码点的十进制数。
2.String.fromCodePoint函数:函数的参数是一个字符对应的码点,返回结果就是对应的字符,哪怕是一个4字节的字符也能正确的显示。
es5中的缺陷示例:
javascript中一个字符固定为两个字节,对于那些需要4个字节存储的字符,javascript会认为它是两个字符,此时他的字符长度length为2。
如字符"𠮷",就是一个需要四个字节存储,length为二的字符,javascript
无法正确读取字符。示例如下:
image.png
可以看到str和str2的length都为2,使用charAt()函数能够正确读取字符串str的字符,但无法正确读取4个字节的字符,此时返回的结果出现了了乱码。
es6完美解决了这个问题
image.png
七.String.raw():用来返回字符串的原始面貌
console.log(String.raw`hello\nworld`);//hello\nworld
console.log(`hello\nworld`);
//hello
world
image.png
可以看到未经String.raw()处理的字符串中 \n 会被视为换行符,实现了换行的效果。而经过String.raw()处理的字符串中 \n 会被识别为\和n两个字符,失去换行的效果,直接输出。这就是String.raw()的功能。它常用来作为模板字符串的处理函数,也就是直接在后面加一个模板字符串。
八.字符串的遍历器接口
ES6为字符串增加了遍历器接口,使得字符串可以由for...