JS變數的原始值和引用值

2021-10-24 01:36:45 字數 958 閱讀 7782

原始值型別:undefined、null、boolean、number 和 string 型;

引用值型別:object,array , 函式;儲存在堆(heap)中的物件;

什麼是棧?

由作業系統自動分配釋放 ,存放函式的引數值,區域性變數的值等,存放一些基礎型別。

什麼是堆?

是為動態分配預留的記憶體空間;你可以在任何時候分配和釋放它。這樣使得跟蹤哪部分堆已經被分配和被釋放變的異常複雜;有許多定製的堆分配策略用來為不同的使用模式下調整堆的效能,存放陣列以及函式物件引用值。

var a=1;

var a=b

var a=2;

console.

log(a)

// 2

console.

log(b)

//1

文字描述不太形象,但是還是用文字去描述一下

在棧裡面,建立乙個房間a,裡面盛放了1,這個值

後面直接複製房間a,裡面盛放了1,這個值,此時這個房間名為b

然後呢 ,由於房間a裡面的值不能更改,這個時候只有再建立乙個房間c,盛放了值2,然後將房間名字更改為a,第一步建立的房間名自動更改為預設

因此,a後面重新再賦值,也不會影響到b 的值,關鍵在於,原始值型別為複製模式

var c=[1

,2,3

];var d=c;

c.push(4

)console.

log(c)

//1,2,3,4

console.

log(d)

//1,2,3,4

儲存在堆(heap)中的物件,也就是說,儲存在變數處的值是乙個指標(point),指向儲存物件的記憶體處

Js 中的原始值和引用值

最近開始注重自己的基礎知識,以前總是覺得自己什麼都要會一點,不精也沒關係,現在想想,感覺這種想法是錯誤的。一些最基本的基礎底層知識還是要很紮實的。原始值即一些代表原始資料型別的值,也叫基本資料型別,首先說一下js中有哪些原始值,number,string,boolean,null,undefined...

ECMAScript 原始值和引用值

原始值 儲存在棧 stack 中的簡單資料,直接儲存在變數訪問的位置 引用值 儲存在堆 heap 中的物件,儲存在變數處的值是乙個指標,指向儲存物件的記憶體處 為變數賦值時,ecmascript的解釋程式必須判斷該值是原始型別還是引用型別 ecmascript把字串看作引用型別 引用型別的引用值大小...

JS中原始值和引用值的儲存方式

在ecmascript中,變數可以存放兩種型別的值,即原始值和引用值 根據資料型別不同,有的變數儲存在棧中,有的儲存在堆中。具體區別如下 原始變數及他們的值儲存在棧中,當把乙個原始變數傳遞給另乙個原始變數時,是把乙個棧房間的東西複製到另乙個棧房間,且這兩個原始變數互不影響。引用值是把 引用變數的名稱...