最近研究了建立Android虛擬機、vscode結合weex開發Android APP、Vmware裝MAC虛擬機的事,看的內容不夠多,接下來加油javascript
變量類型:前端
變量複製:java
傳參(見示例):web
// 示例 function setName(obj) { // 指向person,添加屬性name obj.name = "Nicholas"; // 指針指向新的內存空間 obj = new Object(); obj.name = "Greg"; // 函數執行完畢後,局部對象當即銷燬 } var person = new Object(); setName(person); alert(person.name); //"Nicholas"
檢測類型數組
執行環境:定義變量或函數有權訪問的其餘數據範圍,決定行爲。中有變量對象,保存環境中定義的全部變量和函數,環境銷燬,變量、函數銷燬瀏覽器
做用域鏈的前端,始終都是當前執行的代碼所在環境的變量對象。若是這個環境是函數,則將其活動對象(activation
object)做爲變量對象。活動對象在最開始時只包含一個變量,即arguments對象(這個對象在全局環境中是不存在的)。做用域鏈中的下一個變量對象來自包含(外部)環境,而再下一個變量對象則來自下一個包含環境。這樣,一直延續到全局執行環境;全局執行環境的變量對象始終都是做用域鏈中的最後一個對象
內外關係:weex
在做用域鏈前端加臨時變量對象,執行後移除函數
function aaa( ) { var qs = '?id=12'; // 引用location,with內部可用location的全部屬性和方法 with(location) { // href爲locaiton.href var url = href + qs; } // 在aaa( )內可拿到with( )內定義的url return url; }
{ } 封閉的代碼塊中定義的變量,執行後沒有被銷燬,依舊存在於{ }外部執行環境中性能
聲明變量優化
查詢標識符
執行環境管理着代碼執行過程當中使用的內存
自動垃圾收集機制:實現所需內存分配、無用內存回收,自動管理。固定時間間隔,週期性檢索再也不繼續使用的變量,打標記,釋放其佔用的內存
回收策略
標記清除(主流)
引用計數(不常見)
特殊狀況:
性能問題
// 手動觸發方式 // IE window.CollectGarbage(); // Opear7~ window.opera.collect();
管理內存