《js高程》筆記總結二(變數,作用域,記憶體問題)

2022-03-05 05:25:08 字數 599 閱讀 3982

理解基本型別和引用型別的值,理解執行環境,理解垃圾收集

引數的傳遞

作用域連

延長作用域鏈

標記清除

引用標記

官話:當申明了乙個變數並將乙個引用型別賦值給該變數是,則這個的引用次數加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 變數複製是將儲存在變數物件的值複製乙份儲存在新變...