[Javascript] JavaScript賦值時的傳值與傳址

來源:互聯網
上載者:User

標籤:對象   regex   har   不同的   regexp   number   也會   傳址   變更   

 

JavaScript中有兩種不同資料類型的值,分別是基礎資料型別 (Elementary Data Type)與引用資料類型

  • 基礎資料型別 (Elementary Data Type)包含5類,分別是:Number、String、Boolean、Null、Undefined
  • 引用資料類型包含剩下的Array、Date、Math、RegExp、Object、Function等

 

將一個值賦給變數時,解析器必須確定這個值是基本類型還是參考型別。

  • 基本類型是按值直接存取的
  • 參考型別是按引用訪問的
基礎資料型別 (Elementary Data Type)賦值:
//此處是基礎資料型別 (Elementary Data Type)對的賦值//最後在改變了b的值得情況下,a的值不受影響var a = 1;var b = a;b = 10;console.log(a);  //1

 

如果從一個變數向另一個變數複製基本類型的值,會在變數變數對象上建立一個新值,然後把該值複製到為新變數分配的位置上

 

引用資料類型賦值
//此處是引用資料類型的賦值//在arr2變化的情況下,arr1也會同步變更var arr1 = [1,2,3,4];var arr2 = arr1;arr2[0] = 10;console.log(arr1[0]);  //10

  

當從一個變數向另一個變數複製引用的值時,同樣也會將儲存在變數對象中的值複製一份放到為新變數分配的空間中。不同的是,這個值的副本實際上是一個指標,而這個指標指向儲存在堆中的一個對象。複製操作結束後,兩個變數實際上引用同一個對象。

 

[Javascript] JavaScript賦值時的傳值與傳址

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.