首页 > 试题广场 >

执行以下程序,输出结果为() var a =[1,2,3];

[单选题]
执行以下程序,输出结果为()
var a =[1,2,3];
var b = a.slice();
b.push(4);
console.log(a)

  • [1,2,3,4]
  • [1,2,3]
  • [4]
  • [2,3,4]
Slice 方法能对数组进行浅拷贝,不能实现深拷贝。
      let arr = [1,2,3,4]
      let b = arr.slice()
      console.log(arr,b)
      b.push(100)
      console.log(arr,b)

      let arr2 = [1,2,3,[1,2,3]]
      let b2 = arr2.slice()
      console.log(arr2,b2)
      b2[3].push(100)
      console.log(arr2,b2)


发表于 2019-08-21 14:44:48 回复(1)
JS的数组方法中改变原数组的方法有以下几个(不包含push、pop、shift、unshift):
sort(); // 数组排序

reverse(); // 数组反转

splice();     // 删除/插入

发表于 2020-11-09 09:45:25 回复(0)

slice不改变原数组,返回截取的数组,slice(start,end),splice改变原数组splice(start,how many,element1,…)

发表于 2020-03-18 22:11:28 回复(0)
slice 跟 splice 是不一样的
发表于 2019-08-14 18:20:14 回复(0)
a.slice():只对a进行一个复制的操作,并返回一个新数组;然后b指向这个新数组。
发表于 2019-08-05 10:47:20 回复(0)
这题目太坏了。。。
发表于 2019-03-13 09:27:28 回复(18)

JS中slice()方法是选取数组的的一部分,并返回一个新数组

注意:是新数组。

所以执行后跟a毛线关系都没有。

发表于 2019-03-24 20:29:55 回复(3)
一顿分析猛如虎 结果题目却问a md
发表于 2019-11-14 10:57:20 回复(0)
slice()不会改变原数组
发表于 2019-04-01 19:21:41 回复(0)
Array.prototype.slice(begin , end)非入侵式函数,不会改变原数组对象。
begin可选,缺省为0 ; end可选,缺省为末尾。
故最后,a = [ 1,2,3 ] , b =[ 1,2,3,4 ]; 
发表于 2020-03-20 17:12:23 回复(0)
一直以为问的
console.log(b);
发表于 2020-08-23 14:36:21 回复(1)
好吧是自己想当然了,以为是打印b,是console.log(a) !!!!
发表于 2019-08-25 13:53:38 回复(0)
太坏了
发表于 2022-01-19 22:58:13 回复(0)
Javascript中的slice()方法是选取原数组的一部分,并且返回一个新数组和原数组没有关系,
slice函数的用法
如果本题该为console.log(b)的话
结果是 [1,2,3,4];
如果slice(1);则为[2,3,4];
如果slice(2);则为[3,4];
发表于 2021-11-25 14:11:10 回复(0)
slice()返回的是一个浅拷贝得到的数组。
发表于 2021-06-16 10:04:23 回复(0)
slice() 方法以新的数组对象,返回数组中被选中的元素。
发表于 2022-03-11 09:54:39 回复(0)

垃圾

发表于 2021-02-19 16:13:01 回复(0)
枯辽
发表于 2020-12-30 12:34:49 回复(0)

mdn上的解释
图片说明

编辑于 2023-12-26 16:58:54 回复(0)
不会改变原数组
发表于 2023-11-02 15:29:52 回复(0)