3、字符串的拓展

三、字符串的拓展

#3.1 includes(),startsWith(),endsWith()

在我们判断字符串是否包含另一个字符串时,ES6之前,我们只有typeof方法,ES6之后我们又多了三种方法:

  • includes():返回布尔值,表示是否找到参数字符串
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部
let a = 'hello leo';
a.startsWith('leo');   // false
a.endsWith('o');       // true
a.includes('lo');      // true

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

let a = 'hello leo';
a.startsWith('leo',1);   // false
a.endsWith('o',5);       // true
a.includes('lo',6);      // false

endsWith 是针对前 n 个字符,而其他两个是针对从第n个位置直到结束。

#3.2 repeat()

repeat方法返回一个新字符串,表示将原字符串重复n次。
基础用法

'ab'.repeat(3);        // 'ababab'
'ab'.repeat(0);        // ''

特殊用法:

  • 参数为小数,则取整
'ab'.repeat(2.3);      // 'abab'
  • 参数为负数Infinity,则报错
'ab'.repeat(-1);       // RangeError
'ab'.repeat(Infinity); // RangeError

  • 参数为0到-1的小数NaN,则取0
'ab'.repeat(-0.5);     // ''
'ab'.repeat(NaN);      // ''
  • 参数为字符串,则转成数字
'ab'.repeat('ab');     // ''
'ab'.repeat('3');      // 'ababab'

#3.3 padStart(),padEnd()

用于将字符串头部尾部补全长度,padStart()头部补全padEnd()尾部补全
这两个方法接收2个参数,第一个指定字符串最小长度,第二个用于补全的字符串
基础用法

'x'.padStart(5, 'ab');   // 'ababx'
'x'.padEnd(5, 'ab');     // 'xabab'

特殊用法:

  • 原字符串长度,大于或等于指定最小长度,则返回原字符串。
'xyzabc'.padStart(5, 'ab'); // 'xyzabc'
  • 用来补全的字符串长度和原字符串长度之和,超过指定最小长度,则截去超出部分的补全字符串。
'ab'.padStart(5,'012345'); // "012ab"
  • 省略第二个参数,则用空格补全。
'x'.padStart(4);           // '    x'
'x'.padEnd(4);             // 'x    '

#3.4 模版字符串

用于拼接字符串,ES6之前:

let a = 'abc' + 
    'def' + 
    'ghi';

ES6之后:

let a = `
    abc
    def
    ghi
`

拼接变量: 在**反引号()**中使用${}`包裹变量或方法。

// ES6之前
let a = 'abc' + v1 + 'def';

// ES6之后
let a = `abc${v1}def`
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。