ES6(ECMAScript 2015)及后续的 ES2016、ES2017、ES2018、ES2019、ES2020、ES2021 等版本为 JavaScript 的字符串对象引入了许多实用的新方法,极大地简化了字符串的处理。以下是面试中常被问到的主要新增字符串处理方法:
一、 判断类方法 (返回布尔值)
这些方法用于检查字符串是否包含、开头或结尾于指定的子串。
includes(searchString, position)- 功能:判断一个字符串是否包含另一个指定的字符串。
- 参数:
searchString:要搜索的字符串。position(可选):开始搜索的位置,默认为0。
- 返回值:布尔值 (
true或false)。
startsWith(searchString, position)- 功能:判断一个字符串是否以另一个指定的字符串开头。
- 参数:
searchString:要搜索的字符串。position(可选):在原字符串中开始查找的位置(从该位置开始看是否匹配),默认为0。
- 返回值:布尔值。
endsWith(searchString, length)- 功能:判断一个字符串是否以另一个指定的字符串结尾。
- 参数:
searchString:要搜索的字符串。length(可选):将原字符串视为长度为length的子串来判断(即只看前length个字符),默认为原字符串长度。
- 返回值:布尔值。
二、 操作与填充类方法
这些方法用于重复字符串或用其他字符填充字符串。
repeat(count)- 功能:将原字符串重复指定次数,生成一个新的字符串。
- 参数:
count:重复的次数。 - 返回值:新的重复后的字符串。
padStart(targetLength, padString)- 功能:用指定的字符串从头部(左侧)补全原字符串,使其达到指定的总长度。
- 参数:
targetLength:目标总长度。padString(可选):用于填充的字符串,默认为空格' '。
- 返回值:新的填充后的字符串。
padEnd(targetLength, padString)- 功能:用指定的字符串从尾部(右侧)补全原字符串,使其达到指定的总长度。
- 参数:同
padStart。 - 返回值:新的填充后的字符串。
三、 其他重要新增方法
- 模板字符串 (Template Literals)
- 语法:使用反引号
`定义。 - 功能:
- 多行字符串:可以直接换行书写,无需
\n。 - 字符串插值:使用
${expression}将变量或表达式嵌入字符串中。 - 调用函数:可以在
${}中直接调用函数。
- 多行字符串:可以直接换行书写,无需
- 语法:使用反引号
trimStart()/trimLeft()和trimEnd()/trimRight()- 功能:虽然
trim()在 ES5 中已有,但 ES2019 新增了更精确的trimStart()(移除开头空格) 和trimEnd()(移除结尾空格) 方法。trimLeft()和trimRight()是它们的别名。
- 功能:虽然
replaceAll(searchValue, replaceValue)(ES2021)- 功能:将字符串中所有匹配
searchValue的部分替换为replaceValue。这是对replace()方法(只替换第一个匹配项)的重要补充。 - 参数:
searchValue:要被替换的字符串或正则表达式(如果用正则,必须带g标志)。replaceValue:用来替换的新字符串。
- 功能:将字符串中所有匹配
总结
在回答此类面试题时,可以重点强调 includes, startsWith, endsWith, repeat, padStart, padEnd 这几个核心的 ES6 新增方法,并提及非常强大的模板字符串。同时,了解 trimStart/trimEnd 和 replaceAll 这些稍晚版本加入的方法也能体现你的知识广度。记住,这些方法通常都返回新字符串,而不会修改原字符串。
THE END


