面试题:ES6 新增了哪些字符串处理函数?

ES6(ECMAScript 2015)及后续的 ES2016、ES2017、ES2018、ES2019、ES2020、ES2021 等版本为 JavaScript 的字符串对象引入了许多实用的新方法,极大地简化了字符串的处理。以下是面试中常被问到的主要新增字符串处理方法:

一、 判断类方法 (返回布尔值)

这些方法用于检查字符串是否包含、开头或结尾于指定的子串。

  1. includes(searchString, position)
    • 功能:判断一个字符串是否包含另一个指定的字符串。
    • 参数
      • searchString:要搜索的字符串。
      • position (可选):开始搜索的位置,默认为0。
    • 返回值:布尔值 (truefalse)。
  2. startsWith(searchString, position)
    • 功能:判断一个字符串是否以另一个指定的字符串开头
    • 参数
      • searchString:要搜索的字符串。
      • position (可选):在原字符串中开始查找的位置(从该位置开始看是否匹配),默认为0。
    • 返回值:布尔值。
  3. endsWith(searchString, length)
    • 功能:判断一个字符串是否以另一个指定的字符串结尾
    • 参数
      • searchString:要搜索的字符串。
      • length (可选):将原字符串视为长度为 length 的子串来判断(即只看前 length 个字符),默认为原字符串长度。
    • 返回值:布尔值。

二、 操作与填充类方法

这些方法用于重复字符串或用其他字符填充字符串。

  1. repeat(count)
    • 功能:将原字符串重复指定次数,生成一个新的字符串。
    • 参数count:重复的次数。
    • 返回值:新的重复后的字符串。
  2. padStart(targetLength, padString)
    • 功能:用指定的字符串从头部(左侧)补全原字符串,使其达到指定的总长度。
    • 参数
      • targetLength:目标总长度。
      • padString (可选):用于填充的字符串,默认为空格 ' '
    • 返回值:新的填充后的字符串。
  3. padEnd(targetLength, padString)
    • 功能:用指定的字符串从尾部(右侧)补全原字符串,使其达到指定的总长度。
    • 参数:同 padStart
    • 返回值:新的填充后的字符串。

三、 其他重要新增方法

  1. 模板字符串 (Template Literals)
    • 语法:使用反引号 ` 定义。
    • 功能
      • 多行字符串:可以直接换行书写,无需 \n
      • 字符串插值:使用 ${expression} 将变量或表达式嵌入字符串中。
      • 调用函数:可以在 ${} 中直接调用函数。
  2. trimStart() / trimLeft()trimEnd() / trimRight()
    • 功能:虽然 trim() 在 ES5 中已有,但 ES2019 新增了更精确的 trimStart() (移除开头空格) 和 trimEnd() (移除结尾空格) 方法。trimLeft()trimRight() 是它们的别名。
  3. replaceAll(searchValue, replaceValue) (ES2021)
    • 功能:将字符串中所有匹配 searchValue 的部分替换为 replaceValue。这是对 replace() 方法(只替换第一个匹配项)的重要补充。
    • 参数
      • searchValue:要被替换的字符串或正则表达式(如果用正则,必须带 g 标志)。
      • replaceValue:用来替换的新字符串。

总结

在回答此类面试题时,可以重点强调 includes, startsWith, endsWith, repeat, padStart, padEnd 这几个核心的 ES6 新增方法,并提及非常强大的模板字符串。同时,了解 trimStart/trimEndreplaceAll 这些稍晚版本加入的方法也能体现你的知识广度。记住,这些方法通常都返回新字符串,而不会修改原字符串。

THE END
喜欢就支持一下吧
点赞12 分享