赋值后两个对象的比较

一、基本类型的赋值

描述:只是赋值,相等两个变量就相等,赋值不改变原本的变量

基本类型包括:数字,布尔值等

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]

 

posted @ 2017-06-14 12:57  念念念不忘  阅读(277)  评论(0)    收藏  举报