摘要:個引用變量指向同一個對象,讓其中一個引用變量指向另一個對象,另一個變量依然指向前一個對象。
JavaScript 基礎深入——數據、變量、內存 什么是數據?
存儲在內存中代表特定信息的,本質上是0100101.....
數據的特點:可傳遞、可運算
一切皆數據
內存中所有操作的目標:數據
算術運算
邏輯運算
賦值運算
運行函數
什么是內存?內存條通電后產生的可儲存數據的空間(臨時的)
內存的產生和死亡:內存條(電路板)==>通電==>產生內存空間==>存儲數據==>處理數據==>斷電==>內存空間和數據都消失
一塊小內存的2個數據:
內部存儲的數據
地址值
內存分類:
棧:全局變量 / 局部變量
堆:對象
什么是變量?
可變化的量:變量名和變量值組成
變量名
變量值
每個變量都對應一塊小內存:
變量名:用來查找對應的內存,
變量值:就是內存中保存的數據
內存、數據、變量三者之間的關系內存是用來存儲數據的空間
變量是內存的標識
關于引用變量賦值的問題2 個引用變量指向同一個對象,通過一個變量修改對象內部數據,另一個變量看到的就是修改后的數據。
2 個引用變量指向同一個對象,讓其中一個引用變量指向另一個對象,另一個變量依然指向前一個對象。
幾個易錯問題 問題1var a = xxx, a 內存中到底保存的是什么?
xxx 是基本數據,a 內存中保存的就是這個數據
xxx 是對象,a 內存中保存的是對象的地址值
xxx 是一個變量,保存 xxx 的內存內容(可能是基本數據,也可能是地址值)
問題2在js調用函數時傳遞變量參數時,是值傳遞還是引用傳遞?
理解1:都是值(基本值/地址值)傳遞
理解2:可能是值傳遞,也可能是引用傳遞(地址值)
問題3js 引擎如何管理內存?
內存生命周期
分配小內存空間,得到它的使用權
存儲數據,可以反復進行操作
釋放小內存空間
釋放內存
局部變量:函數執行完自動釋放
對象:成為垃圾對象==>垃圾回收器回收
var a = 3 var obj = {} obj = undefined function fn () { var b = {} } fn() // b是自動釋放, b所指向的對象是在后面的某個時刻由垃圾回收器回收
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104079.html
摘要:進階期理解中的執行上下文和執行棧進階期深入之執行上下文棧和變量對象但是今天補充一個知識點某些情況下,調用堆棧中函數調用的數量超出了調用堆棧的實際大小,瀏覽器會拋出一個錯誤終止運行。 (關注福利,關注本公眾號回復[資料]領取優質前端視頻,包括Vue、React、Node源碼和實戰、面試指導) 本周正式開始前端進階的第一期,本周的主題是調用堆棧,今天是第3天。 本計劃一共28期,每期重點攻...
摘要:引用類型參數的傳遞與引用類型的復制一樣,傳遞的是內存地址。指向一個新的地址,與不再指向同一個地址官方解釋來一發中所有函數的參數都是按值傳遞的。總結很簡單,函數參數都是按值傳遞都是棧內數據的拷貝。 基本類型與引用類型 值類型(基本類型):String,Number,Boolean,Null,Undefined。 引用類型:Array、Object、Function、Date等有多個值...
摘要:引用類型參數的傳遞與引用類型的復制一樣,傳遞的是內存地址。指向一個新的地址,與不再指向同一個地址官方解釋來一發中所有函數的參數都是按值傳遞的。總結很簡單,函數參數都是按值傳遞都是棧內數據的拷貝。 基本類型與引用類型 值類型(基本類型):String,Number,Boolean,Null,Undefined。 引用類型:Array、Object、Function、Date等有多個值...
閱讀 3843·2021-09-27 13:56
閱讀 885·2021-09-08 09:36
閱讀 771·2019-08-30 15:54
閱讀 615·2019-08-29 17:29
閱讀 934·2019-08-29 17:21
閱讀 1692·2019-08-29 16:59
閱讀 2764·2019-08-29 13:03
閱讀 2970·2019-08-29 12:47