-
值类型的赋值:
- 把等号右边的变量存储的内容(具体的数据)复制一份给左边的变量
- 注意点:修改了其中的一个变量,对另外一个变量没有影响,他们是相互独立的
-
引用类型的赋值:
- 把等号右边的对象存储的内容(指向具体数据的地址)复制一份给左边的对象
- 注意点:修改了其中的某一个对象,对另外一个对象有影响,他们共享内存中的同一块数据
示例代码:
<script>
var str1 = "string1";
var str2 = str1; //值类型的赋值
console.log(str1 == str2); //true
str1 = "修改";
console.log(str1 == str2); //false
console.log(str1); //修改
console.log(str2); //string1
var obj1 = {
name:"张三"
}
var obj2 = obj1; //引用类型的赋值
console.log(obj1 == obj2); //true
obj1.name = "李四";
console.log(obj1.name); //李四
console.log(obj2.name); //李四
//赋值操作之后,如果重新使用字面量的方式来设置对象,那么会切断和赋值对象之间的联系
obj1 = {
age:20,
name:"老王"
}
console.log(obj1.name); //老王
console.log(obj2.name); //李四
</script>
-
使用画图方式解说示例代码: