执行以下程序,输出结果为()
var a =[1,2,3];
var b = a.slice();
b.push(4);
console.log(a)
[1,2,3]
array.slice(begin,end)将返回一个由begin和end决定的原数组的浅拷贝,
其中,begin和end参数均是可选参数,如果省略begin,则默认从索引值为0开始提取,如果省略end,则默认提取到数组最后一个元素,
同时省略begin和end参数时,将提取原数组的所有元素。
array.slice()方法不会修改原数组,如果原数组元素是引用类型,则会复制引用地址到新数组,如果是基本类型,则会直接拷贝值到新数组,但不管往新数组还是原数组中添加新元素,都不会对另一数组产生影响,故数组a的值仍然为[1,2,3]
slice不改变原数组,返回截取的数组,slice(start,end),splice改变原数组splice(start,how many,element1,…)
JS的数组方法中改变原数组的方法有以下几个(不包含push、pop、shift、unshift):
sort(); // 数组排序
reverse(); // 数组反转
splice(); // 删除/插入