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 (4) 之變數、作用域和記憶體問題JavaScript變數記憶體
- project中的堆疊記憶體,記憶體地址引用,gc相關問題Project記憶體GC
- 第4章 變數、作用域和記憶體問題變數記憶體
- [20191220]關於共享記憶體段相關問題.txt記憶體
- 《JavaScript 闖關記》之變數和資料型別JavaScript變數資料型別
- [20191223]關於共享記憶體段相關問題3.txt記憶體
- iOS 記憶體管理相關面試題iOS記憶體面試題
- JS高階(2)—— 資料 變數 記憶體JS變數記憶體
- JavaScript高階程式設計筆記 - 第四章 變數 作用域 記憶體問題JavaScript程式設計筆記變數記憶體
- 記憶體優化相關記憶體優化
- 關於PHP記憶體洩漏的問題PHP記憶體
- 記憶體洩漏引起的 資料庫效能問題記憶體資料庫
- golang的記憶體相關內容Golang記憶體
- 資料庫事物相關問題資料庫
- C結構體中資料的記憶體對齊問題結構體記憶體
- 關於JavaScript的記憶體機制JavaScript記憶體
- 記憶體和棧溢位問題定位記憶體
- 小程式白屏問題和記憶體研究記憶體
- iOS開發筆記— 資料庫、Crash、記憶體問題分析iOS筆記資料庫記憶體
- JavaScript之記憶體溢位和記憶體洩漏JavaScript記憶體溢位
- [效能]【JVM】關於JVM記憶體的N個問題JVM記憶體
- Spring相關問題記錄Spring
- windows memeory 記憶體相關術語Windows記憶體
- 排查Java的記憶體問題Java記憶體
- 變數、作用域與記憶體變數記憶體
- BufferedImage記憶體洩漏和溢位問題記憶體
- 關於dataWithContentsOfFile 讀取大檔案的記憶體問題記憶體
- 指標:存放記憶體地址的變數指標記憶體變數
- 探究 iOS 記憶體問題iOS記憶體
- SQLServer記憶體問題分析SQLServer記憶體
- 【記憶體洩漏和記憶體溢位】JavaScript之深入淺出理解記憶體洩漏和記憶體溢位記憶體溢位JavaScript
- Chrome 再次最佳化記憶體佔用問題,新增記憶體釋放開關Chrome記憶體
- JavaScript的記憶體管理JavaScript記憶體
- 惡意軟體開發——記憶體相關API記憶體API
- 中介軟體相關問題整理
- 日誌導致jvm記憶體溢位相關問題JVM記憶體溢位
- 【譯】JavaScript的記憶體管理和 4 種處理記憶體洩漏的方法JavaScript記憶體