JavaScript變數,資料和記憶體的相關問題
變數,資料和記憶體
資料:儲存在記憶體裡面的010101
記憶體:通電後產生可儲存資料的空間,斷電後資料消失,記憶體中有兩塊資料,一塊是資料,一塊是地址
變數:由變數名和變數值組成,每個變數都對應一小塊記憶體,變數名用來查詢記憶體,變數值為該記憶體中儲存的資料
相關問題
關於賦值與記憶體
賦值無非就兩種
賦值的是值
var a = 1;
var b = a;
//b賦值的是1
賦值的是地址
var a = {};
var b = a;
//b賦值的是a的地址
關於引用變數賦值的問題
當兩個引用變數指向同一物件通過一個變數修改物件內部資料,另一個變數看到的是修改之後的資料
var obj1 = {name:"zlearn"}
var obj2 = obj1 //此時,obj2存的資料就是obj1的資料,obj1的資料就是物件的地址值
obj2.age = 12
console.log(obj1.age)
//此時輸出的是{name:"zlearn",age:12}
以下要注意作用域
var a = {age:13}
function fn2(obj){
obj={
age:15
}
}
fn2(a)
console.log(a.age)//輸出的是13不是15
棧:01x1001, 01x1002
⬇ ⬇
堆:{age: 15} {age: 13}
變數a的值為01x1002
變數obj的值為01x1001
當程式執行時,fn2(a)這一步就相當於obj = a,obj的地址值指向的物件時{age:15},a的地址值還是01x1001,所以輸出的是13
js引擎如何管理記憶體?
記憶體生命週期:
分配小記憶體空間(變數的記憶體空間),得到它的使用權
儲存資料,可以反覆操作
釋放小記憶體空間
當var b = {} 要被釋放的時候,b自動釋放,b所指向的物件所在後面的某一個時刻由垃圾回收器回收。
物件被釋放的時候要成為垃圾物件,再被回收
相關文章
- javascript:變數、作用域和記憶體問題JavaScript變數記憶體
- javascript變數、作用域和記憶體問題......JavaScript變數記憶體
- 變數、作用域和記憶體問題變數記憶體
- 第4章 變數、作用域和記憶體問題變數記憶體
- 一起學習JavaScript (4) 之變數、作用域和記憶體問題JavaScript變數記憶體
- project中的堆疊記憶體,記憶體地址引用,gc相關問題Project記憶體GC
- 《JavaScript 闖關記》之變數和資料型別JavaScript變數資料型別
- iOS 記憶體管理相關面試題iOS記憶體面試題
- JS高階(2)—— 資料 變數 記憶體JS變數記憶體
- JavaScript 變數、作用域及記憶體詳解JavaScript變數記憶體
- 關於java吃記憶體的問題Java記憶體
- JavaScript高階程式設計筆記 - 第四章 變數 作用域 記憶體問題JavaScript程式設計筆記變數記憶體
- 記憶體優化相關記憶體優化
- iOS記憶體管理相關iOS記憶體
- golang的記憶體相關內容Golang記憶體
- 關於PHP記憶體洩漏的問題PHP記憶體
- 記憶體洩漏引起的 資料庫效能問題記憶體資料庫
- SQL Server資料庫記憶體增加的問題分析SQLServer資料庫記憶體
- 資料庫事物相關問題資料庫
- 共享記憶體相關(ipcs/ipcrm)記憶體
- oracle記憶體調整相關Oracle記憶體
- 關於表資料行統計的問題和相關誤區
- 關於JavaScript的記憶體機制JavaScript記憶體
- 關於SQL Server的記憶體佔用問題SQLServer記憶體
- oracle 安裝要用到的記憶體相關引數詳解Oracle記憶體
- [20191220]關於共享記憶體段相關問題.txt記憶體
- [android]記憶體分析相關文件Android記憶體
- 有關記憶體的思考題記憶體
- iOS開發筆記— 資料庫、Crash、記憶體問題分析iOS筆記資料庫記憶體
- 小程式白屏問題和記憶體研究記憶體
- 記憶體和棧溢位問題定位記憶體
- JavaScript之記憶體溢位和記憶體洩漏JavaScript記憶體溢位
- [效能]【JVM】關於JVM記憶體的N個問題JVM記憶體
- QQ群裡關於動態記憶體的問題記憶體
- 變數、作用域與記憶體變數記憶體
- 排查Java的記憶體問題Java記憶體
- 記憶體溢位的問題記憶體溢位
- 執行緒相關記憶體引數sort_buffer/join_buffer等的記憶體分配時機執行緒記憶體