例子
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];arr.slice(2, 7); // 2,3,4,5,6arr.splice(2, 7); // 2,3,4,5,6,7,8
第一个参数表示开始位置, 第二个表示截取到的位置(不包含该位置)
slice(start, end)
第一个参数开始位置, 第二个参数截取长度
splice(start, length)
![c17e0fabd932dd3fb539a75706d2f6c2.png](https://i-blog.csdnimg.cn/blog_migrate/be2d212d89e88181f560732f974a8185.jpeg)
例子
var x = y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] x.slice(2, 5); //2,3,4
原数组并未改变
console.log(x);[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
接下来用同样方式测试splice
y.splice(2, 5); //2,3,4,5,6
显示原数组中的数值被删掉了
console.log(y); //[0,1,7,8,9]
![d778dcc65eebe7eb1f6672acb8e74805.png](https://i-blog.csdnimg.cn/blog_migrate/9aabdd6b0172f4fd2e056bf7cfedbea4.jpeg)
总结:
slice和splice虽然都是对于数组对象进行截取,但是二者还是存在明显区别,函数参数上slice和splice第一个参数都是截取开始位置,slice第二个参数是截取的结束位置(不包含),而splice第二个参数(表示这个从开始位置截取的长度),slice不会对原数组产生变化,而splice会直接剔除原数组中的截取数据!