JavaScript筆記二:變數、範圍和記憶體

來源:互聯網
上載者:User

JavaScript筆記二:變數、範圍和記憶體
1、基本類型和參考型別
基本類型:簡單的資料區段
參考型別:可能由多個值構成的對象,只能給參考型別添加屬性

當複製他們的值時,基本類型實際上是又開闢了獨立的空間儲存值,而參考型別則是建立了指標,他們關聯到同一個對象

2、執行環境和範圍

延長範圍鏈,沒有塊級範圍
3、確定一個值是哪種基本類型可以使用typeof操作符,而確定一個值是哪種參考型別可以使用instanceof操作符。
4、所有變數(基本和引用)都存在一個執行環境當中,這個執行環境決定了變數的生命週期,以及哪一部分代碼可以訪問其中的變數:
執行環境有全域執行環境和函數執行環境之分
每次進入一個新的執行環境,都會建立一個用於搜尋變數和函數的範圍鏈
函數的局部環境不僅有權訪問函數範圍中的變數而且有權訪問父環境甚至全域環境
全域環境只能訪問全域變數和函數而不能直接存取局部環境的任何資料
5、JavaScript是一門具有自動垃圾收集機制的程式設計語言
離開範圍的值將被自動標籤為可以回收,將被刪除
“標記清除”是目前流行的垃圾收集演算法,思想是給當前不是用的值加上標記,然後再回收其記憶體
另一種垃圾收集演算法是“引用計數”,思想是追蹤記錄所有值被引用的次數,JavaScript引擎目前不使用這種演算法,但在IE中訪問非原生JavaScript對象(DOM元素)時,這種演算法仍然會導致問題
當代碼中存在循環參考時,“引用計數”就會出現問題
解除變數的引用不僅可以消除循環參考的現象,而且對垃圾收集也有好處,應該及時解除不再使用的全域對象屬性以及循環參考變數的引用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.