理解基本型別和引用型別的值,理解執行環境,理解垃圾收集
引數的傳遞
作用域連
延長作用域鏈
標記清除
引用標記
官話:當申明了乙個變數並將乙個引用型別賦值給該變數是,則這個的引用次數加1,如果同乙個值又被賦給另乙個變數,則該值的引用次數再加1,相反,如果包含對這個值引用的變數又取得了另乙個值則減1,到0的話,就沒有辦法訪問這個值了,則清除**記憶體
用偽**案例來演示官方說明:
var a = new obj1 (obj1引用1)
var b=a (obj1引用2)
b = c(c指其他值 ,obj1引用-1)
a= c( obj1引用-1)
//此時obj1引用為0,已經沒有變數能訪問這個值了,則清除**
引用標記的致命缺陷:迴圈引用,你的屬性引用我,我的屬性引用你。這樣雙方的引用次數都為2,永遠不會被清除
JS 變數 作用域和記憶體問題
向引數傳遞基本型別時 把值從乙個變數賦值到另乙個變數 傳遞引用型別時 把這個值在記憶體中的位址賦值給區域性變數 function addten num var count 20 var result addten count console.log count 20,沒有變化 console.log...
js 變數 作用域和記憶體問題
基本型別和引用型別 屬性引用型別可以動態新增屬性,而基本型別不可以 var p new obj p.name huyuping console.log p.name huyuping var a a.name huyuping console.log a,name 出錯複製變數值 會在變數的物件上建...
JS 變數 作用域和記憶體問題
一 基本型別和引用型別的值 1 5中基本型別 undefined,null,string,boolean,number是按值訪問的,可以操作儲存在變數的實際的值。引用型別的值是儲存在記憶體中的物件,操作物件實際上是操作物件的應用而不是直接操作物件 2 變數複製是將儲存在變數物件的值複製乙份儲存在新變...