老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

JS內(nèi)存生命周期,棧內(nèi)存與堆內(nèi)存,深淺拷貝是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹了JS內(nèi)存生命周期,棧內(nèi)存與堆內(nèi)存,深淺拷貝是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站建設(shè)、做網(wǎng)站,集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷、軟文發(fā)布平臺(tái)等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計(jì)制作為您帶來(lái)效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。

JS內(nèi)存生命周期

  • 分配內(nèi)存
  • 內(nèi)存的讀與寫(xiě)
  • 釋放內(nèi)存

棧內(nèi)存與堆內(nèi)存

JS數(shù)據(jù)類型

在講棧內(nèi)存與堆內(nèi)存之前,大家應(yīng)該都知道JS分為兩種數(shù)據(jù)類型:

  • 基本數(shù)據(jù)類型

    String , Number , Boolean , null , undefined , Symbol (大小固定,體積輕量,相對(duì)簡(jiǎn)單)

  • 引用數(shù)據(jù)類型

    Object , Array , Function (大小不一定,占用空間較大,相對(duì)復(fù)雜)

內(nèi)存存儲(chǔ)機(jī)制

var a=true;      //布爾型,基本數(shù)據(jù)類型var b='jack';    //字符型,基本數(shù)據(jù)類型var c=18;        //數(shù)值型,基本數(shù)據(jù)類型var d={name:'jack'};   //對(duì)象,引用數(shù)據(jù)類型var d=[0,1,2,3,4,5];   //數(shù)組,引用數(shù)據(jù)類型復(fù)制代碼

正是因?yàn)閿?shù)據(jù)類型的不同,所以他們的存放方式也不同,就和現(xiàn)實(shí)生活中窮人和富人的住所完全不一樣(扯遠(yuǎn)了)。我們先來(lái)看一張圖:

可以看到, a , b , c 都是基本數(shù)據(jù)類型, de 都是引用數(shù)據(jù)類型,他們?cè)诖娣欧绞缴嫌兄举|(zhì)性的區(qū)別,基本數(shù)據(jù)類型的值是存放在棧內(nèi)存中的,而引用數(shù)據(jù)類型的值是存放在堆內(nèi)存中的,棧內(nèi)存中僅僅存放著它在棧內(nèi)存中的引用(即它在堆內(nèi)存中的地址),就和它的名字一樣,引用數(shù)據(jù)類型

內(nèi)存訪問(wèn)機(jī)制

上面講的是存儲(chǔ),接下來(lái)說(shuō)一下變量的訪問(wèn),基本數(shù)據(jù)類型可以直接從棧內(nèi)存中訪問(wèn)變量的值,而引用數(shù)據(jù)類型要先從棧內(nèi)存中找到它對(duì)應(yīng)的引用地址,再拿著這個(gè)引用地址,去堆內(nèi)存中查找,才能拿到變量的值

深淺拷貝

  • 淺拷貝

    上面已經(jīng)和大家說(shuō)過(guò)了基本數(shù)據(jù)類型與引用數(shù)據(jù)類型在存儲(chǔ)上的不同,那么,接下來(lái)說(shuō)的這個(gè)深淺拷貝,想必大家也在面試題中經(jīng)常碰到,老方式,先來(lái)看一段代碼

    var name='jack';var obj={  age:24};var nameCopy=name;var objCopy=obj;
    
    nameCopy='bob';
    objCopy.age=15;console.log(name);    //jackconsole.log(obj.age);     //15復(fù)制代碼

    你會(huì)發(fā)現(xiàn), name 是沒(méi)有被影響的,而我們命名是修改objCopy.age,為什么還會(huì)影響到 obj.age呢,這就是因?yàn)樯顪\拷貝的問(wèn)題在搗鬼,先來(lái)看下下面的一張圖

之所以會(huì)出現(xiàn)這種情況,是因?yàn)镴S對(duì)于基本類型和引用類型的,當(dāng)我們?cè)趶?fù)制引用類型的時(shí)候,復(fù)制的是該對(duì)象的引用地址,所以,在執(zhí)行 var objCopy=obj;的時(shí)候,將 obj引用地址復(fù)制給了 objCopy,所以,這兩個(gè)對(duì)象實(shí)際指向的是同一個(gè)對(duì)象,即改變 objCopy 的同時(shí)也改變了 obj 的值,我們將這種情況稱為淺拷貝,僅僅復(fù)制了對(duì)象的引用,并沒(méi)有開(kāi)辟新的內(nèi)存,拿人手短,拷貝地太淺了。(只有引用類型才會(huì)出現(xiàn)淺拷貝的情況)

  • 深拷貝

    再來(lái)看接下來(lái)的一段代碼

    var name='jack';var obj={  age:24};var nameCopy=name;var objCopy=JSON.parse(JSON.stringify(obj));
    
    nameCopy='bob';
    objCopy.age=15;console.log(name);    //jackconsole.log(obj.age);     //24復(fù)制代碼

    可以發(fā)現(xiàn),在經(jīng)過(guò) JSON.parse(JSON.stringify(obj)) 轉(zhuǎn)換了以后,淺拷貝不復(fù)存在,這一波是深拷貝,深拷貝開(kāi)辟了新的堆內(nèi)存地址,并且將對(duì)象的引用指向了新開(kāi)辟的內(nèi)存地址,和前面復(fù)制的對(duì)象完全獨(dú)立,自立根生,拷貝地很深,學(xué)功夫?qū)W到家,自立門(mén)戶的感覺(jué)。

  • 另外實(shí)現(xiàn)深拷貝的方法(更多方式請(qǐng)自行百度)
    var objCopy=Object.assign({},obj);   //對(duì)象深拷貝的方法 Object.assign
    var arrayCopy=array.concat();       //數(shù)組深拷貝的方法  concat()  (數(shù)組無(wú)嵌套對(duì)象或者數(shù)組可用)
    var arrayCopy=array.slice();       //數(shù)組深拷貝的方法  slice()   (數(shù)組無(wú)嵌套對(duì)象或者數(shù)組可用)
    JSON.parse(JSON.stringify(array))     //順帶提下,JSON.parse(JSON.stringify())   數(shù)組和對(duì)象通用復(fù)制代碼

    接著上面的數(shù)組容易踩坑的地方 ,來(lái)看一個(gè)例子

    var array = [{name: 'jack'}, ['old']];var arrCopy = array.concat();
    arrCopy[0].name='new';console.log(array); // [{name: 'new'}, ['old']]console.log(arrCopy); // [{name: 'new'}, ['old']]復(fù)制代碼

    可以清楚地看到(數(shù)組無(wú)嵌套對(duì)象或者數(shù)組可用的情況下用 concatslice 才有效)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享JS內(nèi)存生命周期,棧內(nèi)存與堆內(nèi)存,深淺拷貝是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!


當(dāng)前文章:JS內(nèi)存生命周期,棧內(nèi)存與堆內(nèi)存,深淺拷貝是什么-創(chuàng)新互聯(lián)
分享路徑:http://www.xueling.net.cn/article/djdsej.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美极品日韩极品1 | 国产va免费精品高清在线 | 久久久久爽人综合网站 | 国产欧美在线播放视频 | 午夜爽爽爽男女免费观看影院 | 91色视频| 涩涩涩视频 | a级欧美视频 | 国产一区二区三区亚洲 | 高清无码视频直接看 | 色七七午夜影院 | 在线欧美国产 | 葵司在线视频 | 免费看片免费播放国产 | 欧美含羞草免费观看全部完 | 日韩av在线一区二区三区 | 久久久久久久久女人体 | 一级久久19久久久区区区区区区 | 国色天香一卡2卡三卡4卡乱码 | 69视频播放| va亚洲| 日韩中文字幕在线播放 | 久久久久国产欧美 | 国产裸拍裸体视频在线观看 | 免费的网站www | 国产成人久久久精品二区三区 | 亚洲成av人片在线观看无码不卡 | 亚洲精品成人无码中文毛片不卡 | 国产久热香蕉在线观看 | 妺妺窝人体色WWW聚色窝仙踪 | 看成年全黄大色黄大片 | 欧美精品国产一区二区三区 | 麻豆网站在线观看 | 久久精品国产人伦 | 國產九九精品 | 国产一级特黄录像 | 玩弄人妻少妇500系列视频 | 午夜福利理论片高清在线观看 | 久久熟妇人妻午夜寂寞影院 | 久久手机免费视频 | 97免费视频观看 |