- 5種基本數據類型
- Undefined, Null, Boolean, Number, String,
- 按值訪問變量(引用類型按引用訪問),不同副本
- 所有函數均是按值傳遞參數,
- 針對基本類型的傳遞不做舉例,參數即一個新的副本
- 針對引用類型,以下是因爲傳遞的值是針對於對象的引用,所以在函數內部的修改在外部也可以體現,而對按值傳參最好的解釋就是加上註釋的代碼後,輸出不變。因爲這時obj是一個新對象的引用,在內部的修改在外部無法體現
function seNmae(obj){ obj.name = "a"; //obj = new Object(); //obj.name = b; } var person = new Object(); setName(person); console.log(person.name); //"a"
- typeof檢測基本數據類型,instanceof判斷對象是誰的實例
- 執行環境
- 全局執行環境(window對象)
- 由執行環境構成作用域鏈,作用域鏈只能向後查找
- 延長作用域鏈(函數和try-catch, with)
- js沒有塊級作用域!!
- 變量聲明
- 使用var聲明的變量會自動添加到最接近的環境中。沒有使用聲明的變量會自動添加到全局環境(嚴格模式下會報錯)
- 垃圾收集
- 自動垃圾收集機制,無需手動跟蹤內存的使用情況,機制是找出不被引用的變量,釋放他們的內存
- 標記清除
當變量進入環境,標記爲進入環境,離開環境,標記爲離開環境。垃圾收集器在運行的時候會給存儲在內存種的變量加上標記,然後會去掉環境中的變量以及被環境中的變量引用的變量的標記,而再此之後被加上標記的變量將被視爲準備刪除的變量。 - 引用計數
跟蹤記錄每個值被引用的次數,當聲明一個變量並且將一個引用類型值賦給該變量時,則這個值的引用次數就是1,如果同一個值又被賦給另一個變量,則該值的引用次數加1,如果包含這個值引用的變量又取得另外一個值,則這個值的引用次數減一,爲0即回收 - 循環引用
- 手動解除引用讓頁面獲取更好的性能(方便垃圾收集器下一次自動回收)
- 標記清除
- 自動垃圾收集機制,無需手動跟蹤內存的使用情況,機制是找出不被引用的變量,釋放他們的內存
js高程複習--變量,作用域,內存
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.