substring
substring
是一个字符串方法,用于从一个字符串中提取一部分子字符串。它接受两个参数:起始索引和结束索引(不包括结束索引处的字符)。substring
方法的特点是它不会改变原始字符串,而是返回一个新的字符串。如果任何一个参数小于0或非数值,substring
会将它们视为0。如果结束索引大于字符串的长度,substring
会自动将其调整为字符串的长度。如果开始索引大于结束索引,substring
会交换两个索引的位置。
let str = "Hello, World!";
let substringResult = str.substring(0, 5); // 提取从索引0到索引4的子字符串
console.log(substringResult); // 输出: "Hello"
substr
substr
也是一个字符串方法,用于从字符串中提取字符。它接受两个参数:起始索引和要提取的字符数。与 substring
不同,substr
的第一个参数是起始位置,第二个参数是要提取的字符数。同样,substr
也不会改变原始字符串,而是返回一个新的字符串。如果起始索引是负数,substr
会从字符串的末尾开始计数。
let str = "Hello, World!";
let substrResult = str.substr(0, 5); // 从索引0开始提取5个字符
console.log(substrResult); // 输出: "Hello"
// 使用负数作为起始索引的示例
let substrNegativeStart = str.substr(-5); // 从字符串末尾开始提取5个字符
console.log(substrNegativeStart); // 输出: "orld!"
splice
splice
是一个数组方法,用于在数组中添加/删除项目,并返回被删除的项目。它接受至少两个参数:起始索引和要删除的项目数量。还可以接受额外的参数,这些参数表示要添加到数组中的新元素。与 substring
和 substr
不同,splice
直接修改原始数组,并返回包含被删除元素的新数组。如果没有删除任何元素,splice
将返回一个空数组。
let arr = [1, 2, 3, 4, 5];
// 从索引1开始,删除2个项目,并添加'a'和'b'
let spliceResult = arr.splice(1, 2, 'a', 'b');
console.log(arr); // 输出: [1, 'a', 'b', 4, 5]
console.log(spliceResult); // 输出: [2, 3],这是被删除的元素数组
// 如果不删除任何元素,splice将返回一个空数组
let emptySpliceResult = arr.splice(2, 0, 'c'); // 在索引2处插入'c',但不删除任何元素
console.log(arr); // 输出: [1, 'a', 'b', 'c', 4, 5]
console.log(emptySpliceResult); // 输出: []
总结
substring
和substr
都是字符串方法,用于提取字符串的一部分。它们的主要区别在于参数的解释和用法。splice
是数组方法,用于在数组中添加/删除元素,并返回被删除的元素。substring
和substr
不会改变原始字符串,而splice
会直接修改原始数组。substring
和substr
返回的是新的字符串,而splice
返回的是被删除的元素数组。
在处理字符串时,substring
和 substr
的选择通常取决于个人偏好和具体需求。在处理数组时,应该使用 splice
。