美文网首页
string 的新特性

string 的新特性

作者: 温梦丽 | 来源:发表于2017-12-04 15:19 被阅读0次

一.模板字符串

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...

相关文章

网友评论

      本文标题:string 的新特性

      本文链接:https://www.haomeiwen.com/subject/sxlzbxtx.html