有人知道这两种方法有什么区别吗?
String.prototype.slice
String.prototype.substring
最佳答案
slice()
的工作方式与 substring()
类似,但有一些不同的行为。
Syntax: string.slice(start, stop);
Syntax: string.substring(start, stop);
它们的共同点:
- 如果
start
等于stop
:返回一个空字符串 - 如果
stop
被省略:将字符提取到字符串的末尾 - 如果任一参数大于字符串的长度,则将使用字符串的长度。
区别 substring()
:
- 如果
start > stop
,则substring
将交换这两个参数。 - 如果任一参数为负数或
NaN
,则将其视为0
。
区别 slice()
:
- 如果
start > stop
,slice()
将返回空字符串。 (""
) - 如果
start
为负数:从字符串末尾设置 char,与 Firefox 中的substr()
完全相同。在 Firefox 和 IE 中都可以观察到这种行为。 - 如果
stop
为负数:将 stop 设置为:string.length – Math.abs(stop)
(原始值),但以 0 为界(因此,Math.max(0, string.length + stop)
) 如 ECMA specification 中所述.
来源:Rudimentary Art of Programming & Development: Javascript: substr() v.s. substring()
关于javascript - String.slice 和 String.substring 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243824/