一. slice() 的用法
语法: stringObject.slice(start,end)
1.start 是开始下标的位置,如果是负数,他的原理就是(c.length + start) ,从这个位置开始计算
2.end (可选) 是结束的下标的位置
注意: 如果第一个数值比第二个数值大, 那么返回的就是 “”
代码如下:
<script>
let c = "little boy";
console.log(c.slice(1)); // "ittle boy"
console.log(c.slice(1, 5)) // "ittl"
console.log(c.slice(3, 2)) // ""
console.log(c.slice(-3)) // "boy"
console.log(c.slice(-3, 1)) // ""
console.log(c.slice(1, -3)) // "ittle "
</script>
二. substr()的用法
语法: stringObject.substr(start,length)。
1.start 是代表开始的位置,从该位置开始到字符结束的位置,如果该数字是负数,那么相当于是执行(c.length + start)
2. length (可选) 代表的是截图字符的长度,如果省略该参数,就从开始的位置到结束位置
注意: 如果length数值为负数,那么返回的结果就是 “”
代码如下:
<script>
let c = "little boy";
console.log(c.substr(1)) // "ittle boy"
console.log(c.substr(1, 5)) // "ittle"
console.log(c.substr(3, 2)) // "tl"
console.log(c.substr(-3)) // "boy"
console.log(c.substr(-3, 1)) // "b"
console.log(c.substr(1, -3)) // ""
</script>
三. substring()的用法
语法: stringObject.substring(start,end)。
1. start代表的开始的位置,如果只有一个参数,那么就从开始的位置到结束的位置, 如果是负数的话,默认的处理机制是把他变成0,然后再进行操作
2. end 代表的是结束的位置,如果是负数的话,也会把他变成0然后进行操作.
注意: 如果end的数值比start的数值小,那么他们会进行交换一次,然后再得出结果
代码如下:
let c = "little boy";
console.log(c.substring(-1)) // "little boy"
console.log(c.substring(1, 5)) // "ittl"
console.log(c.substring(3, 2)) // "t"
console.log(c.substring(-3)) // "little boy"
console.log(c.substring(-3, 1)) // "l"
console.log(c.substring(1, -3)) // "l"
好了,上面的string的三个比较难区分的已经说完了,话不多少,我们开始数组的slice() 和 splice的区分吧,为什么要放到这里呢,因为他们很容易混乱,放在一起,方便自己去理解和区分他们
四. 数组 slice的用法
语法: arrayObject.slice(start,end)
1.start 规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
2. end(可选) 规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
注意: slice() 方法是不会影响到原来的数组的,这一点让我们想到了什么呢,没错,深拷贝,实现深拷贝的方法,JSON.stringify(), loadsh的cloneDeep(),好了,话不多少,扯远了,其实,用法跟字符的slice()其实是一样的,让我们看看下面的代码吧,
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.slice(1)) // ["b", "c", "d", "e", "f"]
document.write(arr.slice(1, 4)) // ["b", "c", "d"]
document.write(arr.slice(3, 2)) // []
document.write(arr.slice(-3)) // ["d", "e", "f"]
document.write(arr) // ["a", "b", "c", "d", "e", "f"]
五, 数组splice的方法
语法: arrayObject.splice(start, length, item1, …, itemX)
1. start(必须) 整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
2. length(可选) 代表的是删除的长度,如果不设置,代表的是从开始位置删除到结束位置,如果设置为0,代表的是不删除元素
3. item1, …, itemX (可选) 代表的是在该数组中添加的元素
注意: splice() 方法会对元素组进行影响,这里我们想到了什么,没错是浅拷贝,Object的对象复制都是浅拷贝,因为他们的this对象指向的是同一个,又扯远了,让我们看看下面的代码吧
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.splice(1)) // ["b", "c", "d", "e", "f"]
document.write(arr) // ["a"]
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.splice(1, 4)) // ["b", "c", "d", "e"]
document.write(arr) // ["a", "f"]
**第三位和第四位是在删除的位置,插入新的元素值**
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.splice(1, 4, "little", "boy")) // ["b", "c", "d", "e"]
document.write(arr) // ["a", "little", "boy", "f"]
有任何问题 欢迎指出哦,大家一起进步,非常感谢.