JavaScript的數據類型分爲:基本類型、引用類型函數
本質區別: blog
基本數據類型的變量實際值存儲在棧中生命週期
引用數據類型,據名知意,引用數據類型的實際值存儲在堆中,變量值實際存儲的是實際值存儲在堆中的地址ip
見圖:內存
綜上思考複製🤔作用域
基本數據類型與引用數據類型的的複製區別綜上顯而易見變量
1 基本數據類型當 var a = 1; var b = a ;的時候 b 獲取到的是實際值,因此在內存空間中會新增一個存儲你值爲1的b的內存空間, 示意圖以下垃圾回收
2. 引用數據類型當var a = {name: 'lili'}; var b = a;的時候b獲取到時存儲在變量a中的地址, 因此再內存空間中會新增一個存儲着地址的變量b, 而a , b 指向同一個內存堆中,示意圖以下數據類型
大體瞭解以後,思考一下全局變量和局部變量的生命週期🤔引用
1. 全局變量: 在頁面關閉後結束
2. 局部變量: 在執行的做用域塊執行完成後結束
綜上, 局部變量會在其函數塊執行以後自動解除,對於引用類型的局部做用域其引用關係會自動解除
大多數的引用類型的全局變量須要手動解除引用關係