上一节中,我们学习了模板字符串和标签模板,这一节,我们接着来看一下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
欢迎你的到来 ~ ~ ❤❤❤