slice,substring和substr的区别
- 都接收两个参数,slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。其中substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置,slice是将后面小的参数转化为0
- 三者都不影响原字符串,返回的是截取到的值;slice是数组和字符串都可以使用,substring和substr只有字符串可以使用。
- 参数有负数的情况下:slice是将负数与字符串长度相加作为结果;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数,第二个负参数转化为0;substring则干脆将负参数都直接转换为0。
- 补充splice方法:和slice方法的区别是它会影响原数组,它是只有数组可以使用,字符串不能使用,它可以有三个参数,splice(first,middle,last),其中first是要开始截取的位置,middle是要截取的个数,last是要插入的项目
各种案例如下:
//参数都是比较正常的情况下
var str = "01234";
var result = str.slice(0,2);
console.log(result);//01
result = substring(0,2);
console.log(result);//01
result = str.substr(0,2);
console.log(result);//01
//参数后面比前面小的时候
var result = str.slice(2,0);
console.log(result);//返回空字符串
result = str.substring(2,0);
console.log(result);//01
//参数都是负数的情况下
var str = "01234";
var result = str.slice(-3,-1);//23
result = str.substring(-3,-1);//返回空字符串
result = str.substr(-3,-1);//返回空字符串
//参数一个是负数的情况下
result = str.slice(-1,5);//4
result = str.substring(-1,5);//01234
result = str.substr(-1,5);//4