ES6之字符串的扩展(下)

2017-04-22  本文已影响0人  嘿喵heyMeow

上一节中,我们学习了模板字符串和标签模板,这一节,我们接着来看一下ES6还对字符串添加了哪些新特性。

repeat() 函数
includes() 函数
startswith() 函数
endswith() 函数
codePointAt() 函数
String.fromCodePoint( ) 函数
String.raw() 函数

repeat() 函数

将目标字符串重复n次,返回新的字符串:

cons tname = 'zzq';
const nameR = name.repeat(3);
console.log(nameR);  // zzqzzqzzq

includes() 函数

判断字符串中是否含有指定的字符串,返回值是boolean类型:

const str = "my name is zzq";
str.includes('zzq');  // true
str.includes('s');  // false

includes(参数1, 参数2) 可以传入两个参数:
参数1:要查找的字符串,
参数2:指定开始查找的位置

const str = "my name is zzq";
str.includes('m');   // true
str.includes('m', 8); // false

startswith() 函数

startswith(参数1, 参数2):
判断目标字符串是否以指定字符串开头
参数1:指定字符串,
参数2(可选):开始搜索的位置

const str = "jintian tianqi zhenhao";
str.startsWith('jin');  // true
str.startsWith('tianqi ');  // false
str.startsWith('tianqi ',8);  // true

endswith() 函数

和startswith的用法一样,用来判断目标字符串是否以指定字符串结尾。同样也可以使用两个参数。废话不多说,直接上代码就可以了:

const str = "jintian tianqi zhenhao";
str.endsWith('zhenhao');  // true
str.endsWith('qi', 14);  // true
str.endsWith('an', 7);  //  true

需要注意的是,第二个参数是代表指在前n个字符里判断。

codePointAt() 函数

在js中,一个字符需要2个字节存储,需要4个字节存储的js认为它是2个字符。

const str = "𠮷";
console.log(str.length);  // 2

例如汉字 "𠮷"的长度是2,代表占两个字符,但是js无法处理。。所以ES6添加了codePointAt()函数用来处理4个字节的字符。

const str = "𠮷";
str.codePointAt(str);  // 134071

134071是 "𠮷"的码点的十进制数,转换成16进制就是20bb7,其对应的Unicode编码则是\u20bb7。
(这一块我理解的不是很好,建议可以看下这篇文章细致的了解:es6学习笔记-字符串的扩展_v1.0

String.fromCodePoint( ) 函数

和codePointAt()相反,该函数是根据传进的码点返回对应的字符,比如上边的 "𠮷" 的码点是134071:

String.fromCodePoint(134071); //   𠮷

String.raw() 函数

我们先来看一下代码:

`hello\nworld`;  // 输出:hello换行world
String.raw`hello\nworld`;  // 输出:hello\nworld

从上边的代码中,可以很清晰地看到String.raw的作用:把已加工的字符串转换为原始字符串。

最后,跟大家分享一下我的个人博客地址:http://javascript404.com
欢迎你的到来 ~ ~ ❤❤❤

上一篇下一篇

猜你喜欢

热点阅读