關(guān)于JS的堆和棧的理解

一谈截、??堆(heap)和棧(stack)

棧(stack)會(huì)自動(dòng)分配內(nèi)存空間台舱,會(huì)自動(dòng)釋放。堆(heap)動(dòng)態(tài)分配的內(nèi)存第岖,大小不定也不會(huì)自動(dòng)釋放

二难菌、數(shù)據(jù)類型

1、基本類型(簡(jiǎn)單的數(shù)據(jù)段蔑滓,存放在棧里面郊酒,占固定大小的空間)

基本類型有:Undefined遇绞、Null、Boolean燎窘、Number 和String摹闽。這些類型在內(nèi)存中分別占有固定大小的空間,他們的值保存在椇纸。空間付鹿,我們通過(guò)按值來(lái)訪問(wèn)的。

2蚜迅、引用類型(多個(gè)值構(gòu)成的對(duì)象舵匾,保存在堆內(nèi)存中,包含引用類型的變量實(shí)際上保存的不是變量本身谁不,而是指向該對(duì)象的指針)

引用類型坐梯,值大小不固定,棧內(nèi)存中存放地址指向堆內(nèi)存中的對(duì)象刹帕。是按引用訪問(wèn)的吵血。棧內(nèi)存中存放的只是該對(duì)象的訪問(wèn)地址,在堆內(nèi)存中為這個(gè)值分配空間偷溺。由于這種值的大小不固定蹋辅,因此不能把它們保存到棧內(nèi)存中。但內(nèi)存地址大小的固定的挫掏,因此可以將內(nèi)存地址保存在棧內(nèi)存中晕翠。 這樣,當(dāng)查詢引用類型的變量時(shí)砍濒, 先從棧中讀取內(nèi)存地址, 然后再通過(guò)地址找到堆中的值硫麻。對(duì)于這種爸邢,我們把它叫做按引用訪問(wèn)。

三拿愧、數(shù)據(jù)銷毀

基本數(shù)據(jù)類型在當(dāng)前執(zhí)行環(huán)境結(jié)束時(shí)銷毀杠河,而引用類型不會(huì)隨執(zhí)行環(huán)境結(jié)束而銷毀,只有當(dāng)所有引用他的變量不存在時(shí)這個(gè)對(duì)象才會(huì)被回收機(jī)制回收浇辜。

四券敌、引用類型最好不要比較

舉個(gè)栗子:

var a={name:"ayi",age:21};//初始化一個(gè)對(duì)象(引用類型)

var obj1=a,obj2=a;//將obj1和obj2指向同一個(gè)地址,都為a的地址

obj1.name="aha";//改變obj1的name的值柳洋,這個(gè)時(shí)候obj1的地址并沒(méi)有變化

console.log(obj1==obj2)//這個(gè)時(shí)候打印的值為true待诅,因?yàn)樗麄冞€是指向同一地址引用。

obj1={name:"aiyo"};//這個(gè)時(shí)候obj1指向了另外一個(gè)地址引用

console.log(obj1==obj2)//false

五熊镣、項(xiàng)目中遇到的問(wèn)題

···

? var arry1=[

{name:"zhang",age:23,key:"12"},

? ? ? ? {name:"as",age:23,key:"123"},

? ? ? ? {name:"sd",age:23,key:"124"},

? ? ? ? {name:"df",age:23,key:"125"},

? ? ? ? {name:"fd",age:23,key:"126"},

? ? ? ? {name:"as",age:23,key:"127"},

? ? ? ? {name:"as",age:23,key:"1276"},

? ? ? ? {name:"as",age:23,key:"533"}];

? ? var item={name:"as",age:23};

? ? function btnClick() {

// var _item=JSON.parse(JSON.stringify(item))

? ? ? ? var _item=item;

? ? ? ? for(var i=0;i

if(_item.name==arry1[i].name){

_item.key=arry1[i].key+"1"http://item本來(lái)沒(méi)有key卑雁,現(xiàn)在使得他的key的地址指向arry1[i].key+"1"

//第二次單擊時(shí)募书,改變item.key的地址,之前push到arry1的item.key的地址也變成現(xiàn)在的测蹲,所以兩次是一樣的莹捡。

//想要他們的引用地址不一樣,可以使用JSON.parse(JSON.stringify(value))套用

? ? ? ? ? ? }

}

arry1.push(_item)

console.log(arry1)//單擊兩次以后扣甲,發(fā)現(xiàn)打印出來(lái)最后兩個(gè)元素的key值是一樣的

? ? }

在賦值的時(shí)候篮赢,其實(shí)改變的是引用地址,想要改變他的地址以及值琉挖,可以使用JSON.parse(JSON.stringify(value))套用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末启泣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粹排,更是在濱河造成了極大的恐慌种远,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顽耳,死亡現(xiàn)場(chǎng)離奇詭異坠敷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)射富,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門膝迎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人胰耗,你說(shuō)我怎么就攤上這事限次。” “怎么了柴灯?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵卖漫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我赠群,道長(zhǎng)羊始,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任查描,我火速辦了婚禮突委,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冬三。我一直安慰自己匀油,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布勾笆。 她就那樣靜靜地躺著敌蚜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窝爪。 梳的紋絲不亂的頭發(fā)上钝侠,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天该园,我揣著相機(jī)與錄音,去河邊找鬼帅韧。 笑死里初,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忽舟。 我是一名探鬼主播双妨,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叮阅!你這毒婦竟也來(lái)了刁品?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浩姥,失蹤者是張志新(化名)和其女友劉穎挑随,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勒叠,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兜挨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了眯分。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拌汇。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖弊决,靈堂內(nèi)的尸體忽然破棺而出噪舀,到底是詐尸還是另有隱情,我是刑警寧澤飘诗,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布与倡,位于F島的核電站,受9級(jí)特大地震影響昆稿,放射性物質(zhì)發(fā)生泄漏蒸走。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一貌嫡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧该溯,春花似錦岛抄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至氯庆,卻和暖如春蹭秋,著一層夾襖步出監(jiān)牢的瞬間扰付,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工仁讨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羽莺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓洞豁,卻偏偏與公主長(zhǎng)得像盐固,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丈挟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容