先来看看下面一个例子,看看打印结果跟大家的猜想是不是一样的:
let str = 'abcdefghijklmnopqrstuvwxyz'
str.slice(1,5)//'bcde'
str.slice(5,1)//''
str.substr(1,5)//'bcdef'
str.substr(5,1)//'f'
str.substring(1,5)//'bcde'
str.substring(5,1)//'bcde'
看了上面的例子是不是觉得自己平时用这些方法,但是没有研究的这么详细,那么根据这个例子我们可以推出,
当我们知道我们截取的字符串长短时我们用substr
,当我们知道字符串的开始截至位置时我们用slice
,当我们不知道开始截止下标的大小哪个值大时,我们用substring
再来看看下面的例子:
let str = 'abcdefghijklmnopqrstuvwxyz'
str.slice(1)//'bcdefghijklmnopqrstuvwxyz'
str.substr(1)//'bcdefghijklmnopqrstuvwxyz'
str.substring(1)//'bcdefghijklmnopqrstuvwxyz'
str.slice(-1)//'z'
str.substr(-1)//'z'
str.substring(-1)//'abcdefghijklmnopqrstuvwxyz'
str.slice()//'abcdefghijklmnopqrstuvwxyz'
str.substr()//'abcdefghijklmnopqrstuvwxyz'
str.substring()//'abcdefghijklmnopqrstuvwxyz'
由这个例子我们可以得出只传一个参数的时候只有substring为一个负值的时候不一样,substring为负值当你没传