var同时赋值问题

代码一:
vara=b=''
a=1
console.log(a)//打印1
console.log(b)//打印''
代码二:
vara=b=[]
a.push(1)
console.log(a)//打印[1]
console.log(b)//打印[1]
为什么代码一两变量不等,而代码二两变量相等?
拉风的咖菲猫
浏览 466回答 2
2回答

慕后森

这个涉及到传引用还是传值的问题。像数组这种对象,传的是引用,而不是直接复制一个传值。因此vara=b='',两个是不同地址的。而vara=b=[],a,b两个是指向相同地址

函数式编程

换种写法你就明白了,实质上是这样的:代码一: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也变了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript