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