从subString与slice的语法定义来看,两者的用途相似。但是深入学习后,发现他们之间存在许多不同。
两者定义如下:
subString | slice |
---|---|
作用:截取指定位置之间的字符串 | 作用:提取字符串中的一部分,并返回这个新的字符串 |
语法:string string.substring(indexStart [, indexEnd]) | 语法:string string.slice(beginSlice[, endSlice]) |
参数:indexStart截取的起始位置/indexEnd截取的结束位置,默认为最后一个字符的位置 | 参数:beginSlice 起始位置/endSlice结束位置,默认为最后一个字符的位置 |
返回值:返回截取后的字符串,不包括结束的位置 | 返回值:返回截取后的字符串,不包括结束的位置 |
它们的不同之处来自于对不同参数的处理:
subString | slice |
---|---|
参数为非负数,如果参数为负数,会自动将负数转换成0 | 参数可为负数;负数代表从字符串的最后一位往前获取 |
当起始位置参数大于结束位置参数,subString会做判断,将两个参数进行互换 | 当起始位置参数大于结束位置参数,获取结果为空 |