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);
他们的共同点:
start
stop
stop
子字符串()
的区别:
start > stop
substring
NaN
0
slice()
的区别:
start > stop
slice()
""
)start
substr()
stop
string.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);
并获得完全相同的结果条形所有边缘情况,例如负索引/长度。