String.slice 和 String.substring 之间有什么区别?
2022-08-29 22:06:42
有谁知道这两种方法之间的区别是什么?
String.prototype.slice
String.prototype.substring
有谁知道这两种方法之间的区别是什么?
String.prototype.slice
String.prototype.substring
slice()就像一些不同的行为一样工作。substring()
Syntax: string.slice(start, stop);
Syntax: string.substring(start, stop);
他们的共同点:
startstopstop子字符串()的区别:
start > stopsubstringNaN0slice() 的区别:
start > stopslice()"")startsubstr()stopstring.length – Math.abs(stop)Math.max(0, string.length + stop)slice()substr()否则,请继续阅读以获取完整比较
string.slice(start,end)string.substr(start,length)string.substring(start,end)注意#1:slice()==substring()
slice()提取字符串的各个部分,并在新字符串中返回提取的部分。substr()提取字符串的各个部分,从指定位置的字符开始,并返回指定的字符数。substring()提取字符串的各个部分,并在新字符串中返回提取的部分。注意#2:slice()==substring()
slice()不substr()不substring()不注意#3:slice()==substr()==substring()
slice()选择从字符串末尾开始的字符substr()选择从字符串末尾开始的字符substring()不执行注意#4:slice()==substr()
slice()不执行substr()由于第二个参数不是位置,而是长度值,因此它将像往常一样执行,没有问题substring()将交换两个参数,并像往常一样执行slice()必需;起始索引substr()必需;起始索引substring()必需;起始索引注意#5:slice()==substr()==substring()
slice()可选;结束提取的位置(最多,但不包括)substr()可选;要提取的字符数substring()可选;结束提取的位置(最多,但不包括)注意#6:slice()==substring()
slice()选择从字符串的起点到终点的所有字符substr()选择从字符串的起点到终点的所有字符substring()选择从字符串的起点到终点的所有字符注意#7:slice()==substr()==substring()
因此,可以说 和 之间存在差异,而 基本上是 的副本。slice()substr()substring()slice()
如果你想要 的功能:substr
"foobarbaz".substr(index, length);
在不使用已弃用的功能的情况下,您只需执行以下操作:
"foobarbaz".substring(index, length + index);
并获得完全相同的结果条形所有边缘情况,例如负索引/长度。