slice,substring,substr的区别

slice,substring,substr用于数组或字符串之间的截取,其间区别如下:
*
slice(开始位置,结束位置)
substring(开始位置,结束位置)
substr(开始位置,截取几位)
*
slice可以用于数组也可用于字符串
substring和substr只用于字符串

var arr = [1,2,3,4,5,6,7],
    str = "helloworld!";  //防止空格干扰,不用带空格的,注意这里有个!号也算一位
 
console.log(str.slice(1));  //elloworld!  
console.log(str.substring(1)); //elloworld! 
console.log(str.substr(1));  //elloworld! 
			
console.log(arr.slice(1));  //[2,3,4,5,6,7]
console.log(arr.substr(1));  //TypeError: arr.substr is not a function
console.log(arr.substring(1));  //TypeError: arr.substring is not a function
  • slice,substr能够将负数位置转换成整数位置
    substring能自动调换参数位置,负数当0处理

  • 当第一参(正)>第二参(正)时
    slice返回空
    substring 自动调换参数位置
    substr(开始位置,取n位) //如果第一参大于str.length,返回空

//栗子不变
console.log(str.slice(5,1));  //""
console.log(str.substring(5,1));  //ello
console.log(str.substr(5,1));  //"w"
 
console.log(arr.slice(5,1));  //[]
  • 第一参正,第二参负
    slice 将负数位置转化位正数位置后,截取
    substring 将负数当成0处理
    substr 第二参数为负数时,返回空
//栗子不变
//第一参正,第二参负
console.log(str.slice(1,-2)); //elloworl
console.log(str.substr(1,-2));  //""
console.log(str.substring(1,-2));  //h
 
console.log(arr.slice(1,-2)); //[ 2, 3, 4, 5]
  • 第一参负,第二参正
    slice 负数位置转化正数位置后截取
    substring 把负数当成0处理
    substr 负数位置转化正数位置后截取
//第一参负,第二参正
//栗子不变
console.log(str.slice(-3,1))  //""
console.log(str.substr(-3,1))  //l
console.log(str.substring(-3,1))  //h
 
console.log(arr.slice(-3,1))  //[]
  • 其他情况依照以上原则判断
//全负
//栗子不变
console.log(str.slice(-1,-5));		//""
console.log(str.substr(-1,-5));	//""
console.log(str.substring(-1,-5));		//""
 
console.log(arr.slice(-1,-5));	//[]
//上面的结果全是空
		
console.log(str.slice(-5,-1)); //orld
console.log(str.substr(-5,-1)); //""
console.log(str.substring(-5,-1)); //""
 
console.log(arr.slice(-5,-1)); //[ 3, 4, 5, 6 ]

参考链接:
https://blog.csdn.net/qq_38047742/article/details/82144266

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值