ES6 字符串的扩展

1.at()-返回字符串给定位置的字符

charAt():该方法不能识别码点大于0xFFFF的字符

at():可以识别码点大于0xFFFF的字符

2.includes()-返回布尔值,表示是否找到了参数字符串

startsWith()-返回布尔值,表示参数字符串是否在源字符串的头部

endsWidth()-返回布尔值,表示参数字符串是否在源字符串的尾部

var s = 'Hello world!';

s.startsWith('Hello')//true
s.endsWith('!')//true
s.includes('o')//true

这三个方法都支持第二个参数,表示开始搜索的位置。

var s = 'Hello world!';

s.startsWith('world',6)//true
s.endsWith('Hello',5)//true
s.includes('Hello',6)//false

上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束的字符。

3.repeat()-返回一个新字符串,表示将原字符串重复n次

'x'.repeat(3)//"xxx"
'hello'.repeat(2)//"hellohello"
'na'.repeat(0)//""

参数如果是小数,会被取整。

'na'.repeat(2.9)//"nana"

如果参数是负数或者Infinity,会报错。

'na'.repeat(Infinity)//RangeError
'na'.repeat(-1)//RangeError

如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于-0,repeat视同为0。

'na'.repeat(-0.9)//""

参数NAN等同于0。

'na'.repeat(NAN)//""

如果参数是字符串,则会先转换成数字。

'na'.repeat('na')//""
'na'.repeat('3')//"nanana"

4.padStart(),padEnd()-字符串补全长度,padStart用于头部补全,padEnd用于尾部补全。

'x'.padStart(5,'ab')//"ababx"
'x'.padStart(4,'ab')//"abax"

'x'.padEnd(5,'ab')//"xabab"
'x'.padEnd(4,'ab')//"xaba"

上面的代码中,padStart和padEnd分别接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

如果原字符串的长度等于或大于指定的最小长度,则返回字符串。

'xxx'.padStart(2,'ab')//"xxx"
'xxx'.padEnd(2,'ab')//"xxx"

如果省略第二个参数,则会用空格来补全。

'x'.padStart(4)//"   x"
'x'.padEnd(4)//"x   "

猜你喜欢

转载自blog.csdn.net/weixin_39658215/article/details/80007720