亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

一篇文章徹底搞懂JS深淺拷貝和const

MyFaith / 2278人閱讀

摘要:圖數(shù)據(jù)類型圖引用類型深淺拷貝問題不知道什么是深拷貝和淺拷貝的請先去并在調(diào)試臺自己操作一下,這篇文章只會說明為何中會有這種問題。所以有的時候我們?yōu)榱吮苊鉁\拷貝,會用一些方式實現(xiàn)深拷貝。

首先要了解的js基礎(chǔ)
基本數(shù)據(jù)類型:Object、undefined、null、Boolean、Number、String、Symbol (ES6新加) 
Object包括: Array 、Date 、RegExp 、Function 

兩者的重要區(qū)別在于:基本類型賦值給變量,變量的標(biāo)識符和變量的值都存放在內(nèi)存中的棧(Stack)里。引用類型的變量的標(biāo)識符在棧中,變量的值在內(nèi)存的堆(Heap)中。
舉一個通俗的例子:基本類型是你在內(nèi)存的棧中擁有一個咖啡店和鑰匙,引用類型是你只有咖啡店的鑰匙,你可以去內(nèi)存的堆中找到對應(yīng)的咖啡店地址,鑰匙環(huán)上有一個標(biāo)簽上面寫了,這個鑰匙是對應(yīng)的哪一家店,而這個標(biāo)簽就是指針。

圖:數(shù)據(jù)類型

圖:引用類型

深淺拷貝問題

不知道什么是深拷貝和淺拷貝的請先去Google并在Chrome調(diào)試臺自己操作一下,這篇文章只會說明為何JS中會有這種問題。

我舉個栗子

出現(xiàn)這種結(jié)果的原因是第二步將a賦給b只是將a的地址給了b(請注意,數(shù)組是引用類型),此時改變b其實就是改變了堆中a和b共同指向的地址的值。通俗一點講:a和b兩個人都拿到了一個同一家咖啡店的鑰匙,這時候在咖啡店多放一個杯子,自然兩人共同的咖啡店都有這個杯子。所以有的時候我們?yōu)榱吮苊鉁\拷貝,會用一些方式實現(xiàn)深拷貝。

關(guān)于ES6里的const,有些后臺人員甚至前端人員誤以為const賦值是常量,其實

const并不是變量的值不得改動,而是變量指向的那個內(nèi)存地址所保存的數(shù)據(jù)不得改動。對于簡單類型的數(shù)據(jù)(數(shù)值、字符串、布爾值),值就保存在變量指向的那個內(nèi)存地址,因此等同于常量。但對于復(fù)合類型的數(shù)據(jù)(主要是對象和數(shù)組),變量指向的內(nèi)存地址,保存的只是一個指向?qū)嶋H數(shù)據(jù)的指針,const只能保證這個指針是固定的(即總是指向另一個固定的地址)

(此段引用自阮一峰)

const只是把鑰匙上的標(biāo)簽(指針)固定,所以:

小白第一次寫技術(shù)文章,如果有錯誤還請多多指教,多謝!

參考資料
[深入了解JS引用類型基本類型][5]
[阮一峰ES6教程][6]

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/102692.html

相關(guān)文章

  • JavaScript深入淺出

    摘要:理解的函數(shù)基礎(chǔ)要搞好深入淺出原型使用原型模型,雖然這經(jīng)常被當(dāng)作缺點提及,但是只要善于運(yùn)用,其實基于原型的繼承模型比傳統(tǒng)的類繼承還要強(qiáng)大。中文指南基本操作指南二繼續(xù)熟悉的幾對方法,包括,,。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家?guī)韼椭?...(據(jù)說是阿里的前端妹子寫的) this 的值到底...

    blair 評論0 收藏0
  • 文章徹底說清JS的深拷貝/淺拷貝

    摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業(yè)務(wù)需要急需知道如何深拷貝對象的開發(fā)者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現(xiàn)思路以及小伙伴們?nèi)绻褂昧诉@種黑科技一定要清楚這樣寫的優(yōu)缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業(yè)務(wù)需要,急需知道如何深拷貝JS對象的開發(fā)者。 第二類,希望扎實JS基礎(chǔ),將來好去面試官前秀操作...

    J4ck_Chan 評論0 收藏0
  • 文章徹底說清JS的深拷貝/淺拷貝

    摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業(yè)務(wù)需要急需知道如何深拷貝對象的開發(fā)者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現(xiàn)思路以及小伙伴們?nèi)绻褂昧诉@種黑科技一定要清楚這樣寫的優(yōu)缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業(yè)務(wù)需要,急需知道如何深拷貝JS對象的開發(fā)者。 第二類,希望扎實JS基礎(chǔ),將來好去面試官前秀操作...

    lakeside 評論0 收藏0
  • 文章徹底說清JS的深拷貝/淺拷貝

    摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業(yè)務(wù)需要急需知道如何深拷貝對象的開發(fā)者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現(xiàn)思路以及小伙伴們?nèi)绻褂昧诉@種黑科技一定要清楚這樣寫的優(yōu)缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業(yè)務(wù)需要,急需知道如何深拷貝JS對象的開發(fā)者。 第二類,希望扎實JS基礎(chǔ),將來好去面試官前秀操作...

    big_cat 評論0 收藏0

發(fā)表評論

0條評論

MyFaith

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<