今天讲解一下ES6字符串新增的方法;
ES6加强了对Unicode的支持,可以采用\uxxxx的形式表示一个字符,xxxx表示字符的Unicode码点。
但是,这种表示法只限于码点在\u0000-\uFFFF之间的字符,超出这个范围必须要用双字节表示。
ES6中字符串添加了遍历器接口,使得字符串可以被for ...of循环遍历。
最最重要的增加了模板字符串;这个功能非常方便;
传统的模板时这样的;
然而ES6中新增了模板字符串就可以写出这样的;
模板字符串;
模板字符串用(``)反引号标识,它可以当作普通的字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量
模板字符串中嵌入变量,需要将变量名写在${}之中。
大括号内可以放任意的JavaScript表达式,可以进行运算,以及引用对象的属性。
模板字符串之中还可以调用函数;
如果模板字符串中的变量没有声明,将报错。
如果模板字符串的大括号内部就是执行Javascript代码,所以如果大括号内部是一个字符串,将会原样输出。
下面说下字符串新增的方法:
在ES6之前,Javascript只有indexOf()方法,用来确定一个字符串是否包含在另一个字符串中。ES6提供了三种新方法;
includes()返回布尔值,表示是否找到了参数字符串。
startsWith();返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith();返回布尔值,表示参数字符串是否在原字符串的尾部。
这三个方法都支持第二个参数,表示开始搜索的位置。但是endsWith的与其他两种方法不同,它是针对前n个字符,而其他方法从第n个位置直到字符串结束。
repeat();
作用:将原字符串重复n次。返回一个新的字符串。
如果参数是小数,会被取整
如果repeat的参数是负数或者Infinity,会报错。
如果参数是0到-1之间的小数,则等用于0,这是因为会先进行取整运算,0到-1之间的小数取整之后等同-0,repeat视同为0;
参数NAN等同于0;如果参数是字符串则会先转换成数字。
padStart()头部补全,padEnd()尾部补全。
一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个是用来补全的字符串。如果字符串的长大于或者等于最大长度,则字符串补全不生效,返回原字符串,
如果省略第二个参数,默认使用空白补全长度。
如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截取超出位数的补全字符串。
trimStart(),消除字符串头部的空格;
trimEnd(),消除字符串尾部的空格;他俩都是返回最新的字符串,不会修改字符串,
replaceAll():一次性替换所有的匹配;
返回值:返回一个新字符串,不会改变原字符串。
at();
此方法接受一个整数作为参数,返回参数指定位置的字符,支持负索引,如果参数位置超出字符串范围会返回undefined;