1.对象的比较并不是值的比较,即使两个对象包含的属性和值都完全一样,但他们也是不相等的。如上述代码
var a=[];
var b=[];
console.log(a==b);//false
console.log(a===b);//false
2.对象的拷贝需要显示复制,单纯的相等只是引用了原来的对象,并没有创建新的对象,换句话说,只是给原来的对象起了别名
var a=[];
var b=a;
b[0]=1;
console.log(a);//[1]
如上图所示,让b=a,此时b仅仅是a的引用值,并没有创建一个新的对象。而如果想要复制对象的话,需要对其中的每个属性进行复制,如下述代码
var a=[1,2,3];
var b=[];
for(var i=0;i<a.length;i++){
b[i]=a[i];
}