赋值后两个对象的比较
一、基本类型的赋值
描述:只是赋值,值相等两个变量就相等,赋值不改变原本的变量
基本类型包括:数字,布尔值等
var a = 5; var b = 5; alert(a == b); //值相等就行
var a = 5; var b = a; //把a的值赋值给b b += 3; //b在5的基础上再加3,改变的是b的值,和a无关,不改变a alert(b); //8 alert(a); //5
二、对象类型的赋值
描述:值和引用都相同,两个对象才相等
1、值相等,引用不等,比较结果不等
var a = [1,2,3]; var b = [1,2,3]; alert( a == b ); //false,因为给a、b都有赋值,虽然值相等,但是引用不同,所以ab不等
2、引用相等,结果相等
var a = [1,2,3]; var b = a; alert( a==b ); //true,因为b引用的是a所以结果相等
3、将对象变量a直接赋值给b,改变b,a的结果也变
var a = [1,2,3]; var b = a; //把a赋值给b,b与a的引用相同 b.push(4); //给b的末尾添加4,引用的传递,a、b都变 alert(b); //[1,2,3,4] alert(a); //[1,2,3,4]
4、重新赋值,两个变量即没有关系了
var a = [1,2,3]; var b = a; //将a赋值给b b = [1,2,3,4]; //将b重新赋值,就与a无关了 alert(b); //[1,2,3,4] alert(a); //[1,2,3]