一尘不染

String.slice和String.substring有什么区别?

javascript

有谁知道这两种方法之间的区别?

String.prototype.slice
String.prototype.substring

阅读 463

收藏
2020-05-06

共1个答案

一尘不染

slice()就像substring()有几种不同的行为一样。

Syntax: string.slice(start, stop);
Syntax: string.substring(start, stop);

他们有什么共同点:

  1. 如果start等于stop:返回一个空字符串
  2. 如果stop省略,则将字符提取到字符串的末尾
  3. 如果任一参数大于字符串的长度,则将使用字符串的长度来代替。

区别 :substring()

  1. 如果为start > stop,substring则将交换这两个参数。
  2. 如果任一参数为负或为NaN,则将其视为0。

区别 :slice()

  1. 如果为start > stopslice()则返回空字符串。(""
  2. 如果start为负:像substr()在Firefox中一样,从字符串末尾设置char 。在Firefox和IE中都观察到此行为。
  3. 如果stop为负:停止点设置为:(string.length – Math.abs(stop)原始值),除了ECMA规范中以0(因此Math.max(0, string.length + stop))为界。
2020-05-06