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

var同时赋值问题

var同时赋值问题

拉风的咖菲猫 2019-05-25 16:16:39
代码一:vara=b=''a=1console.log(a)//打印1console.log(b)//打印''代码二:vara=b=[]a.push(1)console.log(a)//打印[1]console.log(b)//打印[1]为什么代码一两变量不等,而代码二两变量相等?
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

这个涉及到传引用还是传值的问题。像数组这种对象,传的是引用,而不是直接复制一个传值。
因此vara=b='',两个是不同地址的。而vara=b=[],a,b两个是指向相同地址
                            
查看完整回答
反对 回复 2019-05-25
?
函数式编程

TA贡献1807条经验 获得超9个赞

换种写法你就明白了,实质上是这样的:
代码一:
b='';//(感谢2楼提醒,原先写的是varb='')
vara=b;;
a=1;//b是基本变量,a和b指向的不是同一个地址,两者的变动互不影响,所以a=1,b不会变
代码二:
b=[];
vara=b;
a.push(a);//b是引用变量,a=b,所以a和b指向同一个地址,所以a.push(1),b也变了
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 465 浏览
慕课专栏
更多

添加回答

举报

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