var a = 5;
var b = a;
b += 1;
console.log(b)//得到6
console.log(a)//得到5
在基本数据类型上;赋值的时候只是值得复制;
var a = [1,2,3,4];
var b = a;
b.push(4);
console.log(b)//得到[1,2,3,4]
console.log(a)//得到[1,2,3,4]
如果是对象类型;赋值不仅是值的复制,也是引用的传递;
var a = [1,2,3,4];
var b = a;
b=[1,2,3,4];
console.log(b)//得到[1,2,3,4]
console.log(a)//得到[1,2,3]
b = [1,2,3,4]是一个赋值操作;所以会在系统中请求一块内存;b=a这个本来共占内存的,现在b在a的内存中被T出去了;所以不存在引用传递的问题。
所以在判断相等这个问题上,如果数据都是基本类型,只要值相等,那么它俩就相等;如果是对象类型;值要相等,同一引用,才能相等。