javascript變數範圍與記憶體

來源:互聯網
上載者:User

標籤:類型   catch   檢測   一個   null   環境   調整   瀏覽器   記憶體管理   

第四章 變數範圍與記憶體
基本類型 5種
Undefined Null Boolean Number String
兩種變數類型 基本類型與參考型別
注意:String 再其他語言中是參考型別,再javascri中為基本類型
即:這五種基本類型是按值訪問的
參考型別是按照引用訪問的

動態屬性
對於一個參考型別,一個引用變數被賦值後,可以為其添加屬性,也可以刪除與修改其屬性
var o = new object();
o.name = "qi"; //可以為引用變數添加屬性

變數的複製
基本類型的複製:兩個變數做複製時,兩個變數是相互獨立的記憶體空間
參考型別的複製:兩個變數實際上指向同一塊堆記憶體位址

參數的傳遞是 按值傳遞(這個值包括基本類型,以及分配在棧中引用的值,即傳遞對象時,實參與形參引用同一個對象)

typeof 操作符 基本類型檢測
instanceof 可以檢測該引用屬於什麼類型的對象

全域變數 局部變數 範圍鏈(使用try-catch和with會在範圍鏈的前端臨時加長)
與類C語言不同的是:沒有塊級範圍
注意:在 if和for 中定義的變數,也會添加到當前執行環境
(在類C語言中,if for聲明的變數,在判斷/迴圈體結束後會自動釋放,而javascript則會保留)

聲明:
var生命的變數會自動加入最近的執行環境;沒有使用var聲明的則自動加入全域環境變數
垃圾收集:
(1)標記清除(主流;在標記中去掉進入執行環境的變數,然後在將被標記的變數清除)
(2)引用技術
效能問題:
在ie中,變數或者對象的個數,數組長度以及字串長度可以在動態調整觸發瀏覽器執行記憶體回收的動作(使用臨界值來觸發)
也可以顯示的調用(不建議)
記憶體管理:
因為瀏覽器分配的記憶體較少(相對於傳統型程式),因此為了擷取更好的效能,一旦資料不再使用,最好將其置空,接觸引用
解除引用的目的在於讓變數脫離執行環境,便於被下一輪GC標記清除

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.