ES6中字符串的新增方法梳理

1.String.fromCodePoint();

String,fromCodePoint()方法可以认为是对String.fromCharCode()方法的扩展,这两个方法的共同点在于都是用于Unicode码点返回对应字符,但是差异在于String.fromCharCode()该方法不能识别大于0xFFFF的码点,ES6中提供了String.fromCodePoint()就很好的弥补了String.fromCharCode()的不足。它可以识别码点大于0xFFFF的对应字符。

 上面是在chrome控制台打印的结果,很明显String.fromCodePoint()中的方法可以正确的识别‘0x20BB7“的字符,而String.fromCharCode()会舍弃掉掉溢出的高位2变成解析‘0x0BB7’unicode码点。

2.String.raw();

ES6 还为原生的 String 对象,提供了一个raw()方法。该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。

 如果是作为方法的话第一个参数是对象 而且要有raw参数,如果没有会报错,因为该方法可以看作是专门的模板字符串的标签函数,它的第一个参数是具有raw属性的对象。

 3.codePointAt();

ES6提供了该方法可以认为是对charCodeAt()方法的补充。在javascript中,字符是以UTF-16的格式存储的,每个字符固定为两个字节,如果是用四个字节存储的字符javascript就会认为它的长度为2.

 以上可以看出𠾷字的unicode编码大于0xffff所以长度为2,codePointAt()方法和charCodeAt()方法都是可以返回字符的十进制码点,codePointAt()方法可以返回32位的UTF-16字符的码点。charCodeAt()方法只能返回16位的。

4.includes()

返回布尔值,表示是否找到了参数字符串。

 5.startWith()

返回布尔值,表示参数字符串是否在原字符串的头部。

6.endsWith()

返回布尔值,表示参数字符串是否在原字符串的尾部。

7.repeat()

repeat方法返回一个新字符串,表示将原字符串重复n次。该方法的参数为大于 -1的自然数,

参数n带有小数的时候 会向下取整,如果参数为字符串会先转为数字,但n为-1到0之前的数字的时候会转为0。

 8.padStart()

如果某个字符串不够指定长度,会在头部补全。

 9.padEnd()

如果某个字符串不够指定长度,会在尾部补全。

10.trimStart()和trimEnd()

以上两个方法的行为和trim()方法的行为一致都是用户消除字符串的空格,会返回新的字符不影响原来的字符,trimStart()方法是消除字符串头部的空格,trimEnd()方法是用于消除字符串尾部的空格。

 11.matchAll()

matchAll()方法返回一个正则表达式在当前字符串的所有匹配,返回的匹配是一个遍历器(Iterator),而不是数组。

 

posted @ 2020-02-25 23:57  七分暖  阅读(501)  评论(0编辑  收藏  举报
回到顶部