为了账号安全,请及时绑定邮箱和手机立即绑定

ES6 spread operator 跟 push 的差別

ES6 spread operator 跟 push 的差別

婷婷同学_ 2019-02-27 15:23:02
如題目,假如a = [...a, b]與a.push(b)有何差別?
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

你操作单个元素当然没问题了
正如他的字面意思,展开操作符,是作用于数组或者对象等包含多个元素的集合
假如换个场景
a = [1,2,3]
b = [4,5,6]
a = [1,2,3,...b]
a = a.push(b)
差别是不是很大了

查看完整回答
反对 回复 2019-03-03
?
倚天杖

TA贡献1828条经验 获得超3个赞

F12或者Cmd+Alt+i打开浏览器控制台

在console里输入以下代码

var a = [1, 2]

var b = a

a.push(3)

console.log(b)

输出[1,2,3]

3.刷新浏览器 在console里输入以下代码


var a = [1, 2]

var b = a

a = [...a, 3]

console.log(b)

输出[1,2]


为什么? 这就牵扯到引用类型深拷贝和浅拷贝的问题了,建议题主好好补补基础


查看完整回答
反对 回复 2019-03-03
  • 2 回答
  • 0 关注
  • 770 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信