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 "