JS面试题:字符串上的方法

153 阅读4分钟

JavaScript中的字符串内置了许多方法来让我们对字符串进行各种操作,如增删改查等。这篇文章会为大家介绍一下字符串上常用同时也是常考的方法。

实现对字符串进行增删改查的方法

在字符串中增加元素
  • concat
let str = 'abcde'
let str2 = str.concat('fg')

console.log(str2); //输出abcdefg

concat方法可以连接多个字符串,并返回一个新字符串,使用这个方法不会对原字符串有影响。

  • 使用 + 来连接两个字符串
let str = 'abcde'
let str2 = 'fg'
let str3=str +str2
let str4=str3+'higk'

console.log(str3);
console.log(str4);
删除字符串中的元素

字符串中可以使用slice substr substring这些方法来删除字符串中的元素

  • slice
let str = 'abcde'
let str2=str.slice(0,2)//保存下标02的元素  并且会左闭右开

console.log(str2);//输出:ab

slice中的参数代表要选取保存的元素的下标,slice会返回一个新的字符串不会对原字符串造成影响。

  • substr
let str = 'abcdefg'
let str2 = str.substr(3) //选取str字符串下标3开始后的所有元素  包括下标3
let str3 = str.substr(2,3)//选取str字符串下标2开始后的三个元素 左闭右开

console.log(str2);
console.log(str3);

substr可以传递两个或者一个参数,当传递一个参数时代表保存从该下标开始一直到字符串的最后一个元素;当传递两个参数时代表保存从第一个参数下标开始保存第二个参数数量的元素。

  • substring
let str = 'abcdefg'
let str2 = str.substring(3, 5)//选取下标3和下标4的元素 左闭右开

console.log(str2);//输出de
修改字符串中的元素

replace trimRight trimLeft trim padStart padEnd toUpperCase toLowerCase

  • replace
let str = 'abcdefg'
let str2=str.replace('abcdefg','ABCDEFG')

console.log(str2);//输出ABCDEFG

replace会在原始字符串中查找指定的子字符串或正则表达式,并将其替换为新的字符串。

  • trimRight
let str = "  ABC    ";
let str2 = str.trimRight();

console.log(str2); // 输出: "  ABC"

trimRight方法会将字符串末尾的空白字符去除,然后返回一个新的字符串。

  • trimLeft
let str = "  ABC    ";
let str2 = str.trimLeft();

console.log(str2); // 输出: "ABC    "

trimLeft方法会将字符串开头的空白字符去除,然后返回一个新的字符串。

  • trim
let str = "  ABC    ";
let str2 = str.trim();

console.log(str2); // 输出: "ABC"
  • padStart
let str = "ABC";
let str2 = str.padStart(5,'0');

console.log(str2); // 输出: "00ABC"

padStart方法会在原始字符串的开头添加指定的字符从而将字符串填充到指定的长度。

  • padEnd
let str = "ABC";
let str2 = str.padEnd(5,'0');

console.log(str2); // 输出: "ABC00"

padEnd方法会在原始字符串的尾部添加指定的字符从而将字符串填充到指定的长度。

  • toUpperCase
let str = "abc";
let str2 = str.toUpperCase();

console.log(str2); // 输出: "ABC"

toUpperCase的作用是将字符串中的小写字母变为大写。

  • toLowerCase
let str = "ABC";
let str2 = str.toLowerCase();

console.log(str2); // 输出: "abc"

toLowerCase的作用是将字符串中的大写字母变为小写。

查询字符串中的元素

在字符串上可以使用indexOf includes lastIndexOf endsWith startsWith这些方法来进行查询。

  • indexOf
let str = "ABCB";
let str2 = str.indexOf('B');

console.log(str2); // 输出: "1"

indexof可以从头到尾地查找字符串中的指定元素并返回第一次出现时的下标。

  • includes
let str = "ABCB";
let str2 = str.indexOf('B');
let str3 = str.indexOf('D');

console.log(str2); // 查找成功输出: 1
console.log(str3); // 查找失败输出: -1
  • lastIndexOf
let str = "ABCB";
let str2 = str.lastIndexOf('B');
let str3 = str.lastIndexOf('D');

console.log(str2); // 输出: 3
console.log(str3); // 输出: -1

lastIndexOf方法会查询字符串中元素最后一次出现的位置。它会从字符串的末尾开始向前查找指定的元素,并返回该元素在字符串中最后一次出现的位置下标。如果没有找到该元素,则返回 -1。

  • endsWith
let str = "ABCB";
let str2 = str.endsWith('B');
let str3 = str.endsWith('A');

console.log(str2); // 输出: true
console.log(str3); // 输出: false

endsWith用于检查字符串是否以指定的字符串结尾,并根据结果返回 true或 false。

  • startsWith
let str = "ABCB";
let str2 = str.startsWith('B');
let str3 = str.startsWith('A');

console.log(str2); // 输出: false
console.log(str3); // 输出: true

startsWith用于检查字符串是否以指定的字符串开始,并根据结果返回 true或 false。

拓展

实现字符串的转换
  • split
let str = "ABCB";
let arr= str.split("") //将字符串转换为数组

console.log(arr); // 输出: [ 'A', 'B', 'C', 'B' ]
获取字符串的长度
  • .length
let str = "ABCB";
console.log(str.length);//输出4

使用字符串的.length可以知道字符串的长度,但是.length是字符串上的属性而不是方法。

总结

字符串上的方法有很多,许多方法在特定的场景用处很大。通过熟悉这些方法的作用和用法,可以让你更好地处理和操作字符串数据。