一、对于 substring()
substring(start,stop) 示意返回从 start 开始到 stop 处之间的新字符串,其长度为 stop 减 start。 蕴含 start,但不蕴含 stop,且不批改原字符串。这一点与 slice 的含头不含尾相近。例如:
var str = "0123456789";
console.log(str.substring(2,6))//"2345"
console.log(str.substring(0,9),str)//"012345678" "0123456789"
其中 start 是必填项,stop 为选填项,如果 stop 不填 那么将返回是 start 到字符串结尾。例如:
var str = "0123456789";
console.log(str.substring(2))//"23456789"
二、对于 substr()
substr(start,length) 示意返回从 start 开始蕴含 length 长度的新字符串,蕴含 start,且不批改原字符串, 与 substring 相比,第二个参数由代表完结的下标 stop 变成了规定新字符串长度的 length, 例如:
var str = "0123456789";
console.log(str.substr(2,6))//"234567"
其中 start 是必填项,length 为选填项,如果 length 不填 那么将返回是 start 到字符串结尾。例如:
var str = "0123456789";
console.log(str.substr(2))//"23456789"
三、对于 slice()
首先要说的是,slice 可操作数组和字符串,但 substring 和 substr 只能操作字符串,splice 只能操作数组。
slice(start,stop) 示意截取从下标 start 到下标 stop(不包含该元素)的之间的元素,并返回新数组 / 新字符串,并不批改原数组 / 原字符串,这点下面说了,与 substring 很类似。例如:
var str = "0123456789";
arr = [0,1,2,3,4,5,6,7,8,9];
console.log(str.slice(2,6))//"2345"
console.log(arr.slice(2,6))//[2,3,4,5]
四、对于 splice()
splice(start,length,items) 示意从下标 start 处截取 length 长度(与 substr 有点像)的元素后,在 start 处为原数组增加 items,并返回被截取的新数组,splice 会间接批改原数组,例如:
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,3,2,3,4))//[1,2,3]
console.log(arr);//[0,2,3,4,4,5,6,7,8,9] 原数组被截取走了 1,2,3,并退出了 2,3,4
当咱们须要在数组中增加元素 length 只需改为 0 或者正数,列如:
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,0,2,3,4))//[]
console.log(arr);//[0,2,3,4,1,2,3,4,5,6,7,8,9]