-
值類型的賦值:
- 把等號右邊的變量存儲的內容(具體的數據)復制一份給左邊的變量
- 注意點:修改了其中的一個變量,對另外一個變量沒有影響,他們是相互獨立的
-
引用類型的賦值:
- 把等號右邊的對象存儲的內容(指向具體數據的地址)復制一份給左邊的對象
- 注意點:修改了其中的某一個對象,對另外一個對象有影響,他們共享內存中的同一塊數據
示例代碼:
<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>
-
使用畫圖方式解說示例代碼: