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