前端面试篇之JS字符串(二)

322 阅读3分钟

前面聊了一下数组身上的方法前端面试篇之JS数组(一) - 掘金 (juejin.cn)

这篇就来总结一下字符串身上的方法。

js字符串身上有哪些方法

也是和总结数组的方法一样分类来列出来,这样更易于记忆和让我们讲给面试官。

增加元素

concat()

用于连接两个或更多的字符串,并返回一个新的字符串。

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

repeat()

用于重复字符串多次

let str = "ab"; 
let repeated = str.repeat(3); 
console.log(repeated); // 输出 "ababab"

删除元素

slice()

用于提取字符串的一部分,而不改变原始字符串。

let str = "Hello, world!";
let sliceResult = str.slice(7, 12);       // 不包括结束位置
console.log(sliceResult); // 输出 "world"

substring()

substring() 类似于 slice(),但不接受负索引。

let str = "Hello, world!";
let substringResult = str.substring(7, 12);
console.log(substringResult); // 输出 "world"

修改元素

trim()

去除字符串两端的空白字符。

let str = "   Hello, world!   ";
let trimResult = str.trim();
console.log(trimResult); // 输出 "Hello, world!"

trimStart()

去除字符串开头的空白字符

let str = "   Hello, world!";
let trimStartResult = str.trimStart();
console.log(trimStartResult); // 输出 "Hello, world!"

trimEnd()

去除字符串结尾的空白字符

let str = "Hello, world!   ";
let trimEndResult = str.trimEnd();
console.log(trimEndResult); // 输出 "Hello, world!"

padStart()

在字符串的开头添加指定长度的填充字符。

let str = "5";
let padStartResult = str.padStart(4, '0');
console.log(padStartResult); // 输出 "0005"

padEnd()

在字符串的结尾添加指定长度的填充字符。

let str = "5";
let padEndResult = str.padEnd(4, '0');
console.log(padEndResult); // 输出 "5000"

这两种方法呢,我觉得可以在不使用BigInt类型去处理最大安全整数值的计算,将需要计算的number转换为字符串通过padStart方法将两个数添加0使两个数有相同的位数,然后按照个位数与个位数相加,十位与十位相加依次类推。这也算是一种最直接的不使用BigInt类型处理最大安全整数值的计算。不过这种方法缺点就是只能处理相加和相减的运算。

replace()

替换字符串中匹配到的部分。

let str = "Hello, world!";
let replaceResult = str.replace("world", "JavaScript");
console.log(replaceResult); // 输出 "Hello, JavaScript!"

replaceAll

替换字符串中所有匹配的子字符串。

let str = "Hello, world! Hello, universe!"; 
let replaceAllResult = str.replaceAll("Hello", "Hi"); 
console.log(replaceAllResult); // 输出 "Hi, world! Hi, universe!" 

toUpperCase()

将字符串转换为大写

let str = "hello";
let toUpperCaseResult = str.toUpperCase();
console.log(toUpperCaseResult); // 输出 "HELLO"

toLowerCase()

将字符串转换为小写

let str = "WORLD";
let toLowerCaseResult = str.toLowerCase();
console.log(toLowerCaseResult); // 输出 "world"

查询元素

indexOf()

返回指定字符或子串第一次出现的位置,从前查找。

let str = "Hello, world!";
let indexResult = str.indexOf("world");
console.log(indexResult); // 输出 7

lastIndexOf()

返回指定字符或子串第一次出现的位置,从后查找。

let str = "ababab";
let lastIndexOfResult = str.lastIndexOf("b");
console.log(lastIndexOfResult); // 输出 5

includes()

检查字符串是否包含特定子串。

let str = "Hello, world!";
let includesResult = str.includes("world");
console.log(includesResult); // 输出 true

charAt()

返回字符串中指定位置的字符。

let str = "Hello, world!";
let charAtResult = str.charAt(6);
console.log(charAtResult); // 输出 "w"

startsWith()

检查字符串是否以指定子串开始

let str = "Hello, world!";
let startsWithResult = str.startsWith("Hello");
console.log(startsWithResult); // 输出 true

endsWith()

检查字符串是否以指定子串结束

let str = "Hello, world!";
let endsWithResult = str.endsWith("!");
console.log(endsWithResult); // 输出 true

match()

用于查找一个或多个正则表达式的匹配项。

let str = "The rain in Spain";
let matchResult = str.match(/ain/g);
console.log(matchResult); // 输出 ["ain", "ain"]

search()

用于搜索与正则表达式匹配的第一个位置。

let str = "The rain in Spain";
let searchResult = str.search(/ain/);
console.log(searchResult); // 输出 5

转换元素

parseInt()

将字符串转换为整数。

let str = "123";
let parseIntResult = parseInt(str);
console.log(parseIntResult); // 输出 123

split()

根据指定的分隔符将字符串分割成数组。

let str = "apple,banana,orange";
let splitResult = str.split(",");
console.log(splitResult); // 输出 ["apple", "banana", "orange"]

parseFloat()

将字符串转换为浮点数。

let floatNum = parseFloat("123.45");
console.log(floatNum); // 输出 123.45

Number()

将字符串转换为数字,无论是整数还是浮点数。

let num = Number("123");
console.log(num); // 输出 123

讲完这些就差不多了,剩下的就是一下编码和解码的操作,目前我用的太少了,就没看了