likes
comments
collection
share

js面试系列:请问js字符串上有哪些方法?

作者站长头像
站长
· 阅读数 4

前言

在之前的文章中,我们已经对于js的一个面试题——“js数组上有哪些方法?”,下面我将继续为大家介绍JavaScript中经常遇到的面试考点。这篇文章中,我将为大家讲解一下——“js字符串上有哪些方法?”的面试考点。

与数组的方法差不多,我们也可将字符串常用的操作方法归纳为增、删、改、查,但是需要知道字符串的特点是一旦创建了,就不可变。

实现增加的方法

在JavaScript中有着如下实现字符串增加的方法,但是这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作,除了常用+以及${}进行字符串拼接之外,还可通过concat实现。

使用 + 运算符

+ 运算符在JavaScript中不仅可以用于数字的加法,还可以用于字符串的拼接。当 + 两侧都是字符串时,它会将它们连接起来。

示例

let str1 = "Hello";
let str2 = "World";
let result = str1 + ", " + str2;
console.log(result); // 输出: "Hello, World"

使用模板字符串(${}

模板字符串是ES6中引入的一种新的字符串语法,使用反引号``来定义。其中,${} 可以用来插入变量或表达式,并在最终字符串中被替换为对应的值。

示例

let name = "沐渃清澄";
let greeting = `Hello, my name is ${name}.`;
console.log(greeting); // 输出: "Hello, my name is 沐渃清澄."

使用 concat() 方法

concat() 方法用于连接两个或多个字符串,并返回一个新的字符串,不会改变原始字符串。

示例

let str1 = "Hello";
let str2 = "World";
let result = str1.concat(", ", str2);
console.log(result); // 输出: "Hello, World"

实现删除的方法

这里的删的意思并不是说删除原字符串的内容,而是创建字符串的一个副本,再进行操作。 常见的有如下几种方法:

  • slice()
  • substr()
  • substring()

这三个方法都返回调用它们的字符串的一个子字符串,而且都接收一或两个参数。

slice(startIndex, endIndex) 方法

slice() 方法返回一个新的字符串,包含从 startIndexendIndex(不包括 endIndex)之间的字符。如果省略 endIndex,则提取到字符串末尾。

示例

let str = 'abcdefgH'
let str2 = str.slice(4); //从下标为4的位置开始
let str3 = str.slice(2, 5);
console.log(str2); // 输出: "efgH"
console.log(str3); // 输出: "cde" 注意:左闭右开

substr(startIndex, length) 方法

substr() 方法返回一个新的字符串,从 startIndex 开始,提取指定长度的字符。

示例

let str = 'abcdefgH'
let str2 = str.substr(4);
let str3 = str.substr(2, 5);
console.log(str2); // 输出: "efgH"
console.log(str3); // 输出: "cdefg" 注意:这里的第二个参数是截取的长度

substring(startIndex, endIndex) 方法

substring() 方法类似于 slice(),返回一个新的字符串,包含从 startIndexendIndex(不包括 endIndex)之间的字符。如果 startIndex 大于 endIndex,则 substring() 方法会将两个参数互换位置。

示例

let str = 'abcdefgH'
let str2 = str.substring(2,5);
let str3 = str.substring(5,2);
console.log(str2); // 输出: "cde"
console.log(str3); // 输出: "cde"

实现修改的方法

在JavaScript中,实现修改的包括替换、修剪、填充、大小写转换等操作,常用方法有如下几种:

  • replace
  • trim
  • trimRight
  • trimLeft
  • padStart
  • padEnd
  • toUpperCase
  • toLowerCase

replace(searchValue, replaceValue) 方法

replace() 方法返回一个新字符串,其中的 searchValuereplaceValue 替换。

示例

let str = 'abcdefgH'
let str2 = str.replace('abc', '123');
let str3 = str.replace(/abc/, '123');//正则表达式
console.log(str2); // 输出: "123defgH"
console.log(str3); // 输出: "123defgH"

trim() 方法

trim() 方法返回一个新字符串,删除原字符串中开头和结尾处的空格字符。

示例

let str = '   abcdefgH   '
let str2 = str.trim();
console.log(str2); // 输出: "abcdefgH"

trimLeft()trimRight() 方法

  • trimLeft() 方法返回一个新字符串,删除原字符串开头处的空格字符。
  • trimRight() 方法返回一个新字符串,删除原字符串结尾处的空格字符。

示例

let str = '   abcdefgH   '
let str2 = str.trimLeft();
let str3 = str.trimRight();
console.log(str2); // 输出: "abcdefgH   "
console.log(str3); // 输出: "   abcdefgH"

padStart(targetLength, padString)padEnd(targetLength, padString) 方法

  • padStart() 方法返回一个新字符串,用 padString 从开头填充原字符串,直到字符串达到 targetLength 的长度。
  • padEnd() 方法返回一个新字符串,用 padString 从结尾填充原字符串,直到字符串达到 targetLength 的长度。

示例

let str = 'abcdefgH'
let str2 = str.padStart(11, '123');
let str3 = str.padEnd(11, '123');
console.log(str2); // 输出: "123abcdefgH"
console.log(str3); // 输出: "abcdefgH123"

toUpperCase()toLowerCase() 方法

  • toUpperCase() 方法返回一个新字符串,其中的所有字母都被转换为大写字母。
  • toLowerCase() 方法返回一个新字符串,其中的所有字母都被转换为小写字母。

示例

let str = 'abcdefgH'
let str2 = str.toUpperCase();
let str3 = str2.toLowerCase();
console.log(str2); // 输出: "ABCDEFGH"
console.log(str3); // 输出: "abcdefgh"

实现查询的方法

在 JavaScript 中,有多种方法可以执行字符串查询操作,包括查找指定字符串、检查是否包含特定字符串、查找字符串的位置等。常用的方法共有如下几种:

  • indexOf
  • includes
  • lastIndexOf
  • endsWith
  • startWith

indexOf(searchValue, startIndex) 方法

indexOf() 方法返回搜索值在字符串中第一次出现的索引,如果未找到,则返回 -1。并且我们可以通过可选的 startIndex 参数指定搜索的起始位置。

示例

let str = 'abcdefgH'
let str2 = str.indexOf('c');
let str3 = str.indexOf('c', 4);
console.log(str2); // 输出: "2"
console.log(str3); // 输出: "-1"

includes(searchValue, startIndex) 方法

includes() 方法返回一个布尔值,指示字符串是否包含指定的搜索值。与indexOf相同我们可以通过可选的 startIndex 参数指定搜索的起始位置。

示例

let str = 'abcdefgH'
let str2 = str.includes('c');
let str3 = str.includes('c', 4);
console.log(str2); // 输出: "true"
console.log(str3); // 输出: "false"

lastIndexOf(searchValue, startIndex) 方法

lastIndexOf() 方法返回搜索值在字符串中最后一次出现的索引,如果未找到,则返回 -1。

示例

let str = 'abcdefgHa'
let str2 = str.lastIndexOf('a');
let str3 = str.lastIndexOf('a', 1);
console.log(str2); // 输出: "8"
console.log(str3); // 输出: "0"

endsWith(searchString, length) 方法

endsWith() 方法用于判断字符串是否以指定的字符串结尾。 可以通过可选的 length 参数指定要考虑的字符串长度。

示例

let str = 'abcdefgH'
let str2 = str.endsWith('gH');
let str3 = str.endsWith('gH', 3);
console.log(str2); // 输出: "true"
console.log(str3); // 输出: "false"

startsWith(searchString, length) 方法

startsWith() 方法用于判断字符串是否以指定的字符串开头。 和endsWidth一样我们可以通过可选的 length 参数指定要考虑的字符串长度。

示例

let str = 'abcdefgH'
let str2 = str.startsWith('abc');
let str3 = str.startsWith('abc', 4);
console.log(str2); // 输出: "true"
console.log(str3); // 输出: "false"

实现字符串转换的方法

在 JavaScript 中,字符串转换的方法主要是用于将字符串拆分成数组或者将数组合并成字符串。其中,最常用的方法之一是 split(separator, limit) 方法。下面让我详细介绍一下:

  • split() 方法通过指定的分隔符将一个字符串拆分成子字符串数组,并返回该数组。
  • 分隔符可以是一个字符串或正则表达式,用于确定在哪些位置分割字符串。
  • 可选的 limit 参数用于限制拆分的数量。

示例

let str = 'abcdefgH'
let str2 = str.split('c');
let str3 = str.split('c', 1);
console.log(str2); // 输出: "["ab", "defgH"]"
console.log(str3); // 输出: "["ab"]"

结语

以上就是对于JavaScript中有关字符串操作的方法,在回答面试官的问题时,我们不需要回答的如此详细,可以选择部分重点来讲解。