值類型 和 引用類型

實例:數組

1         // 處理價格,原始價格爲分
2         if (data.result.settlementDetail) {
3             var settlementDetail = data.result.settlementDetail;
4             $.each(settlementDetail, function (index, item) {
5                 settlementDetail[index] = item / 100;
6             });
7             console.log(settlementDetail)
8             console.log(data.result.settlementDetail)
9         }

 

上述兩處輸出結果徹底同樣。改變settlementDetail,同時改變了 data.result.settlementDetail。由於兩個對象都是引用類型,指向同一個地址。函數

 

JavaScript值類型和引用類型有哪些 

(1)值類型:數值、布爾值、null、undefined。 

(2)引用類型:對象、數組、函數。 

如何理解值類型和引用類型及舉例 

咱們能夠用「連鎖店」和「連鎖店鑰匙」來理解,不知道如下比喻合不合適,^-^。 

(1)值類型理解:變量的交換等於在一個新的地方按照連鎖店的規範標準(統一店面理解爲相同的變量內容)新開一個分店,這樣新開的店與其它舊店互不相關、各自運營。 

【值類型例子】spa

複製代碼 代碼以下:

function chainStore() 

var store1='Nike China'; 
var store2=store1; 
store1='Nike U.S.A.'; 
alert(store2); //Nike China 

chainStore(); 
//把一個值類型(也能夠叫基本類型)store2傳遞給另外一個變量(賦值)時,實際上是分配了一塊新的內存空間,所以改變store1的值對store2沒有任何影響,由於它不像引用類型,變量的交換實際上是交換了指像同一個內容的地址。


(2)引用類型理解:變量的交換等於把現有一間店的鑰匙(變量引用地址)複製一把給了另一個老闆,此時兩個老闆同時管理一間店,兩個老闆的行爲都有可能對一間店的運營形成影響。 

【引用類型例子】code

複製代碼 代碼以下:
function chainStore()  {  var store1=['Nike China'];  var store2=store1;  alert(store2[0]); //Nike China  store1[0]='Nike U.S.A.';  alert(store2[0]); //Nike U.S.A.  }  chainStore();  //在上面的代碼中,store2只進行了一次賦值,理論上它的值已定,但後面經過改寫store1的值,發現store2的值也發生了改變,這正是引用類型的特徵,也是咱們要注意的地方。
相關文章
相關標籤/搜索