ES6特性:字符串新增方法

字符串识别

ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法。ES6新增三种方法

(1)includes():返回布尔值,判断是否找到参数字符串

(2)startsWith():返回布尔值,判断参数字符串是否在原字符串的头部

(3)endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部

三个方法都可以两个参数 -- 需要查找的字符串,开始搜索的位置索引

let str="abc,def,gh";
str.includes("def");    // true
str.startsWith("abc");    // true
str.endsWith("abc");    // false
str.startsWith("def",4);    // true

字符串重复

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

'a'.repeat(3)    // 'aaa'
'a'.repeat(0)    // ''

参数是小数,向下取整

'x'.repeat(2.9)    // 'xx'

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

'aa'.repeat(Infinity)    // 报错
'aa'.repeat(-1)    // 报错

但是如果参数是0到-1之间的小数,会进行取整运算。0到-1之间的小数,取整后等于-0

'aa'.repeat(-0.5)    // ''

参数NaN等同于0

'xx'.repeat(NaN)    // ''

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

'xx'.repeat('aa')    // ''
'xx'.repeat('3')    // 'xxxxxx'

字符串补全

padStart:返回新的字符串,表示用参数字符串从头部补全原字符串。

padEnd:返回新的字符串,表示用参数字符串从头部补全原字符串。

接受两个参数,第一个参数是生成字符串的长度,第二个是用来补全的字符串。没有指定第二个参数,默认用空格

'aa'.padStart(5,'bc')    // 'bcbaa'
'aa'.endStart(5,'bc')    // 'aabcb'

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

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

如果原字符串加上补全字符串长度大于指定长度,则截去超出位数的补全字符串

'abc'.padStart(10, '0123456789')    // '0123456abc'

猜你喜欢

转载自blog.csdn.net/qq_41049816/article/details/88240137